diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html
new file mode 100644
index 0000000000..1a94b5c73c
--- /dev/null
+++ b/build/reports/problems/problems-report.html
@@ -0,0 +1,663 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Gradle Configuration Cache
+
+
+
+
+
+
+ Loading...
+
+
+
+
+
+
+
diff --git a/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/AbstractBndrun.java b/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/AbstractBndrun.java
index 8834181abf..3f98ec8c7e 100644
--- a/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/AbstractBndrun.java
+++ b/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/AbstractBndrun.java
@@ -289,7 +289,10 @@ public AbstractBndrun() {
} else {
bundles(mainSourceSet.getRuntimeClasspath());
bundles(artifacts);
- properties.convention(Maps.of("project", "__convention__"));
+ // For Gradle 9 compatibility, we no longer provide Project/Task access by default.
+ // Users must explicitly set needed properties to use them in bnd instructions.
+ // See: https://github.com/bndtools/bnd/tree/master/gradle-plugins#gradle-configuration-cache-support
+ properties.convention(Collections.emptyMap());
}
}
@@ -342,8 +345,6 @@ public void bndrunAction() throws Exception {
if (workspace.isEmpty()) {
Properties gradleProperties = new BeanProperties(runWorkspace.getProperties());
gradleProperties.putAll(unwrap(getProperties()));
- gradleProperties.computeIfPresent("project", (k, v) -> "__convention__".equals(v) ? getProject() : v);
- gradleProperties.putIfAbsent("task", this);
run.setParent(new Processor(runWorkspace, gradleProperties, false));
run.clear();
run.forceRefresh(); // setBase must be called after forceRefresh
diff --git a/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/BundleTaskExtension.java b/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/BundleTaskExtension.java
index e299d4a894..e0e68f2b92 100644
--- a/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/BundleTaskExtension.java
+++ b/gradle-plugins/biz.aQute.bnd.gradle/src/main/java/aQute/bnd/gradle/BundleTaskExtension.java
@@ -211,8 +211,11 @@ public BundleTaskExtension(org.gradle.api.tasks.bundling.Jar task) {
SourceSet mainSourceSet = sourceSets(project).getByName(SourceSet.MAIN_SOURCE_SET_NAME);
setSourceSet(mainSourceSet);
classpath(jarLibraryElements(task, mainSourceSet.getCompileClasspathConfigurationName()));
+ // For Gradle 9 compatibility, we no longer provide Project/Task access by default.
+ // Users must explicitly set needed properties to use them in bnd instructions.
+ // See: https://github.com/bndtools/bnd/tree/master/gradle-plugins#gradle-configuration-cache-support
properties = objects.mapProperty(String.class, Object.class)
- .convention(Maps.of("project", "__convention__"));
+ .convention(Collections.emptyMap());
defaultBundleSymbolicName = task.getArchiveBaseName()
.zip(task.getArchiveClassifier(), (baseName, classifier) -> classifier.isEmpty() ? baseName : baseName + "-" + classifier);
defaultBundleVersion = task.getArchiveVersion()
@@ -403,9 +406,6 @@ public void execute(Task t) {
// create Builder
Properties gradleProperties = new BeanProperties();
gradleProperties.putAll(unwrap(getProperties()));
- gradleProperties.computeIfPresent("project",
- (k, v) -> "__convention__".equals(v) ? getTask().getProject() : v);
- gradleProperties.putIfAbsent("task", getTask());
try (Builder builder = new Builder(new Processor(gradleProperties, false))) {
// load bnd properties
File temporaryBndFile = File.createTempFile("bnd", ".bnd", getTask().getTemporaryDir());