From 55e15f6ea8155e673f4531ab2552b601961b921a Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Fri, 6 Feb 2026 17:31:58 +0100 Subject: [PATCH 1/3] fix: some gradle deprecations --- build.gradle | 6 +++--- gradle/java-compiler-settings.gradle | 8 ++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 26b914525..6f83a0cf7 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { repositories { mavenCentral() maven { - url "https://plugins.gradle.org/m2/" + url = "https://plugins.gradle.org/m2/" } } dependencies { @@ -186,7 +186,7 @@ subprojects { } task clean(type: Delete) { - group 'Build' - description 'Deletes the local repositories' + group = 'Build' + description = 'Deletes the local repositories' delete 'build' } diff --git a/gradle/java-compiler-settings.gradle b/gradle/java-compiler-settings.gradle index b74710586..051c2802f 100644 --- a/gradle/java-compiler-settings.gradle +++ b/gradle/java-compiler-settings.gradle @@ -50,15 +50,15 @@ tasks.withType(JavaCompile) { } task sourcesJar(type: Jar, dependsOn: classes) { - group 'Build' - description 'Assembles a jar archive containing the sources.' + group = 'Build' + description = 'Assembles a jar archive containing the sources.' archiveClassifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { - group 'Build' - description 'Assembles a jar archive containing the JavaDoc output.' + group = 'Build' + description = 'Assembles a jar archive containing the JavaDoc output.' archiveClassifier = 'javadoc' from javadoc.destinationDir } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a80b22ce5..aaaabb3cb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 018202a709794aab43aec30d13a4f5080adfc6c0 Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Fri, 6 Feb 2026 17:44:52 +0100 Subject: [PATCH 2/3] fix some deprecations --- build.gradle | 6 ++- gradle/java-compiler-settings.gradle | 25 +++++++----- gradle/manifest-gen.gradle | 38 +++++++++++-------- org.eclipse.lsp4j.debug/build.gradle | 10 +++-- org.eclipse.lsp4j.generator/build.gradle | 10 +++-- org.eclipse.lsp4j.jsonrpc.debug/build.gradle | 10 +++-- org.eclipse.lsp4j.jsonrpc/build.gradle | 10 +++-- .../build.gradle | 10 +++-- org.eclipse.lsp4j/build.gradle | 10 +++-- 9 files changed, 84 insertions(+), 45 deletions(-) diff --git a/build.gradle b/build.gradle index 6f83a0cf7..e4bb94ca2 100644 --- a/build.gradle +++ b/build.gradle @@ -21,11 +21,14 @@ buildscript { } } dependencies { - classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:6.4.0" classpath "org.xtext:xtext-gradle-plugin:4.0.0" } } +plugins { + id "biz.aQute.bnd.builder" version "6.4.0" apply false +} + ext.buildTime = DateTimeFormatter.ofPattern('yyyyMMdd-HHmm').format(LocalDateTime.now()) apply from: "${rootDir}/gradle/versions.gradle" @@ -41,6 +44,7 @@ subprojects { apply plugin: 'org.xtext.xtend' apply plugin: 'eclipse' apply plugin: 'maven-publish' + apply plugin: 'biz.aQute.bnd.builder' apply from: "${rootDir}/gradle/java-compiler-settings.gradle" apply from: "${rootDir}/gradle/xtend-compiler-settings.gradle" diff --git a/gradle/java-compiler-settings.gradle b/gradle/java-compiler-settings.gradle index 051c2802f..e2291fb8c 100644 --- a/gradle/java-compiler-settings.gradle +++ b/gradle/java-compiler-settings.gradle @@ -63,7 +63,7 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from javadoc.destinationDir } -ext.signMethod = { jarfile -> +ext.signMethod = { jarfile, buildDir -> println "Signing $jarfile" def SIGNING_SERVICE = 'https://cbi.eclipse.org/jarsigner/sign' def STDOUT_FORMAT = ' %{size_upload} bytes uploaded, %{size_download} bytes downloaded (%{time_total} s)\\n' @@ -74,7 +74,7 @@ ext.signMethod = { jarfile -> "--write-out", STDOUT_FORMAT, SIGNING_SERVICE); println String.join(" ", curl_pb.command()); - curl_pb.directory(new File("${project.buildDir}")); + curl_pb.directory(new File("${buildDir}")); Process curl_process = curl_pb.start() curl_process.waitFor() @@ -88,7 +88,7 @@ ext.signMethod = { jarfile -> ProcessBuilder mv_pb = new ProcessBuilder("mv", "${jarfile}-signed", jarfile) println String.join(" ", mv_pb.command()); - mv_pb.directory(new File("${project.buildDir}")); + mv_pb.directory(new File("${buildDir}")); Process mv_process = mv_pb.start() mv_process.waitFor() @@ -97,16 +97,21 @@ ext.signMethod = { jarfile -> } } -task signJar(description: 'Sign JARs with Eclipse Signing Service', group: 'Build'){ - doLast { - signMethod("${project.buildDir}/libs/${project.name}-${project.version}.jar") - signMethod("${project.buildDir}/libs/${project.name}-${project.version}-sources.jar") - signMethod("${project.buildDir}/libs/${project.name}-${project.version}-javadoc.jar") +tasks.register('signJar') { + description = 'Sign JARs with Eclipse Signing Service' + group = 'Build' + def buildDir = project.buildDir + def projectName = project.name + def projectVersion = project.version + dependsOn jar, sourcesJar, javadocJar + doLast { + signMethod("${buildDir}/libs/${projectName}-${projectVersion}.jar", buildDir) + signMethod("${buildDir}/libs/${projectName}-${projectVersion}-sources.jar", buildDir) + signMethod("${buildDir}/libs/${projectName}-${projectVersion}-javadoc.jar", buildDir) } } -signJar.dependsOn jar, sourcesJar, javadocJar -artifacts.archives sourcesJar, javadocJar + if (findProperty('ignoreTestFailures') == 'true') { tasks.withType(Test) { diff --git a/gradle/manifest-gen.gradle b/gradle/manifest-gen.gradle index 6e2ff592e..c72185559 100644 --- a/gradle/manifest-gen.gradle +++ b/gradle/manifest-gen.gradle @@ -9,8 +9,6 @@ * * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause ******************************************************************************/ -apply plugin: "biz.aQute.bnd.builder" - def baseVersion = project.version if (baseVersion.endsWith('-SNAPSHOT')) baseVersion = baseVersion.substring(0, baseVersion.length() - 9) @@ -18,35 +16,41 @@ else if (baseVersion.split('\\.').length == 4) baseVersion = baseVersion.substring(0, baseVersion.lastIndexOf('.')) def qualifiedVersion = baseVersion + '.v' + buildTime -jar.bundle.bnd ( - 'Bundle-Version': qualifiedVersion, - 'Bundle-Vendor': 'Eclipse LSP4J', - 'Bundle-RequiredExecutionEnvironment': "JavaSE-${versions.java}", - "-exportcontents": "org.eclipse.lsp4j.*", - "-savemanifest": "build/tmp/bnd/MANIFEST.MF", -) +tasks.named('jar') { + bundle { + bnd( + 'Bundle-Version': qualifiedVersion, + 'Bundle-Vendor': 'Eclipse LSP4J', + 'Bundle-RequiredExecutionEnvironment': "JavaSE-${versions.java}", + "-exportcontents": "org.eclipse.lsp4j.*", + "-savemanifest": "build/tmp/bnd/MANIFEST.MF", + ) + } +} //------------------------------------------------------ // Generate a manifest for the source bundle def sourcesManifestFile = "$buildDir/tmp/sourcesJar/MANIFEST.MF" -task genSourcesManifest { +tasks.register('genSourcesManifest') { outputs.file(sourcesManifestFile) + def projectName = project.name + def projectTitle = project.hasProperty('title') ? project.title : null doLast { def f = new File(sourcesManifestFile) f.parentFile.mkdirs() def writer = new PrintWriter(f) writer.println("Manifest-Version: 1.0") writer.println("Bundle-ManifestVersion: 2") - writer.println("Bundle-SymbolicName: ${project.name}.source") + writer.println("Bundle-SymbolicName: ${projectName}.source") writer.println("Bundle-Version: ${qualifiedVersion}") - if (project.hasProperty('title')) - writer.println("Bundle-Name: ${project.title} Sources") + if (projectTitle) + writer.println("Bundle-Name: ${projectTitle} Sources") else writer.println("Bundle-Name: Sources") writer.println("Bundle-Vendor: Eclipse LSP4J") - writer.println("Eclipse-SourceBundle: ${project.name};version=\"${qualifiedVersion}\"") + writer.println("Eclipse-SourceBundle: ${projectName};version=\"${qualifiedVersion}\"") writer.close() } } @@ -62,10 +66,12 @@ sourcesJar { //------------------------------------------------------ // Task to copy the generated manifest into the project -task eclipseManifest(type: Copy) { +tasks.register('eclipseManifest', Copy) { dependsOn(jar) from "$buildDir/tmp/bnd/MANIFEST.MF" into 'META-INF' } -tasks['eclipse'].dependsOn(eclipseManifest) +tasks.named('eclipse') { + dependsOn('eclipseManifest') +} diff --git a/org.eclipse.lsp4j.debug/build.gradle b/org.eclipse.lsp4j.debug/build.gradle index ed8543bcf..14f9739d6 100644 --- a/org.eclipse.lsp4j.debug/build.gradle +++ b/org.eclipse.lsp4j.debug/build.gradle @@ -22,6 +22,10 @@ dependencies { testImplementation "com.tngtech.archunit:archunit:$versions.archunit" } -jar.bundle.bnd ( - 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*", -) +tasks.named('jar') { + bundle { + bnd( + 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" + ) + } +} diff --git a/org.eclipse.lsp4j.generator/build.gradle b/org.eclipse.lsp4j.generator/build.gradle index 0ddf1dea0..11ed145f9 100644 --- a/org.eclipse.lsp4j.generator/build.gradle +++ b/org.eclipse.lsp4j.generator/build.gradle @@ -18,6 +18,10 @@ dependencies { api "org.eclipse.xtend:org.eclipse.xtend.lib:$versions.xtend_lib" } -jar.bundle.bnd ( - 'Import-Package': "com.google.common.*;version=\"$versions.guava\",com.google.gson.*;version=\"$versions.gson\",*" -) +tasks.named('jar') { + bundle { + bnd( + 'Import-Package': "com.google.common.*;version=\"$versions.guava\",com.google.gson.*;version=\"$versions.gson\",*" + ) + } +} diff --git a/org.eclipse.lsp4j.jsonrpc.debug/build.gradle b/org.eclipse.lsp4j.jsonrpc.debug/build.gradle index 60b44ed3a..5fd07c575 100644 --- a/org.eclipse.lsp4j.jsonrpc.debug/build.gradle +++ b/org.eclipse.lsp4j.jsonrpc.debug/build.gradle @@ -19,7 +19,11 @@ dependencies { testImplementation "junit:junit:$versions.junit" } -jar.bundle.bnd( - 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" -) +tasks.named('jar') { + bundle { + bnd( + 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" + ) + } +} diff --git a/org.eclipse.lsp4j.jsonrpc/build.gradle b/org.eclipse.lsp4j.jsonrpc/build.gradle index 9b5094b2f..3f44d731f 100644 --- a/org.eclipse.lsp4j.jsonrpc/build.gradle +++ b/org.eclipse.lsp4j.jsonrpc/build.gradle @@ -22,9 +22,13 @@ dependencies { testImplementation "junit:junit:$versions.junit" } -jar.bundle.bnd( - 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" -) +tasks.named('jar') { + bundle { + bnd( + 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" + ) + } +} // Add, for example, -PjmhIncludes=StreamMessageProducerBenchmark, to command line // to only run that one benchmark diff --git a/org.eclipse.lsp4j.websocket.jakarta/build.gradle b/org.eclipse.lsp4j.websocket.jakarta/build.gradle index e1312cf74..9df0c19f2 100644 --- a/org.eclipse.lsp4j.websocket.jakarta/build.gradle +++ b/org.eclipse.lsp4j.websocket.jakarta/build.gradle @@ -19,6 +19,10 @@ dependencies { testImplementation "junit:junit:$versions.junit" } -jar.bundle.bnd ( - 'Import-Package': '*' -) +tasks.named('jar') { + bundle { + bnd( + 'Import-Package': '*' + ) + } +} diff --git a/org.eclipse.lsp4j/build.gradle b/org.eclipse.lsp4j/build.gradle index df008fb7c..1eb864c17 100644 --- a/org.eclipse.lsp4j/build.gradle +++ b/org.eclipse.lsp4j/build.gradle @@ -21,6 +21,10 @@ dependencies { testImplementation "com.tngtech.archunit:archunit:$versions.archunit" } -jar.bundle.bnd ( - 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" -) +tasks.named('jar') { + bundle { + bnd( + 'Import-Package': "com.google.gson.*;version=\"$versions.gson\",*" + ) + } +} From 448fb33ddbe59f4f45ab2dcee37ec9f04ea0d7f3 Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Fri, 6 Feb 2026 17:51:00 +0100 Subject: [PATCH 3/3] bump bnd plugin --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e4bb94ca2..3e547c4d6 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ buildscript { } plugins { - id "biz.aQute.bnd.builder" version "6.4.0" apply false + id "biz.aQute.bnd.builder" version "7.2.1" apply false } ext.buildTime = DateTimeFormatter.ofPattern('yyyyMMdd-HHmm').format(LocalDateTime.now())