From ea83248323ab67979ac47e30ab398626bfb7e6b6 Mon Sep 17 00:00:00 2001 From: Nouran Atef Date: Thu, 10 Jul 2025 01:15:04 +0200 Subject: [PATCH 1/5] Fix-Compatibility Signed-off-by: Nouran Atef --- buildSrc/build.gradle.kts | 2 +- settings.gradle.kts | 2 +- .../plugins/PlayDistributionPlugin.java | 79 ++++++++++++++----- 3 files changed, 60 insertions(+), 23 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 880604bc..a13c336e 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -16,7 +16,7 @@ repositories { dependencies { implementation(kotlin("gradle-plugin")) - implementation("org.ajoberstar:gradle-git-publish:0.3.3") + implementation("org.ajoberstar.git-publish:gradle-git-publish:5.1.1") implementation("org.asciidoctor:asciidoctor-gradle-jvm:4.0.4") } diff --git a/settings.gradle.kts b/settings.gradle.kts index 088b7708..8d5bfa09 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.gradle.enterprise").version("3.1.1") + id("com.gradle.enterprise").version("3.19.2") } rootProject.name = "gradle-playframework" diff --git a/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java b/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java index 1478420f..069b3839 100644 --- a/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java +++ b/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java @@ -1,7 +1,6 @@ package org.gradle.playframework.plugins; import org.gradle.api.*; -import org.gradle.api.artifacts.ArtifactCollection; import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.component.ComponentIdentifier; import org.gradle.api.artifacts.component.ModuleComponentIdentifier; @@ -11,6 +10,7 @@ import org.gradle.api.distribution.DistributionContainer; import org.gradle.api.distribution.plugins.DistributionPlugin; import org.gradle.api.file.CopySpec; +import org.gradle.api.file.FileCollection; import org.gradle.api.file.FileCopyDetails; import org.gradle.api.provider.Provider; import org.gradle.api.provider.ProviderFactory; @@ -27,10 +27,7 @@ import org.gradle.util.GradleVersion; import java.io.File; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.Callable; import java.util.function.Function; import java.util.stream.Collectors; @@ -83,6 +80,14 @@ private void createDistributionContentTasks(Project project, Distribution distri final String capitalizedDistName = capitalizeDistributionName(distribution.getName()); final String jarTaskName = "create" + capitalizedDistName + "DistributionJar"; + Configuration runtimeClasspath = project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME); + Provider> artifactsProvider = runtimeClasspath.getIncoming().getArtifacts().getResolvedArtifacts(); + Provider> componentAndFileProvider = artifactsProvider.map(resultSet -> + resultSet.stream() + .map(result -> new ComponentIdAndFile(result.getId().getComponentIdentifier(), result.getFile())) + .collect(Collectors.toSet()) + ); + TaskProvider distributionJarTask = project.getTasks().register(jarTaskName, Jar.class, jar -> { jar.setDescription("Assembles an application jar suitable for deployment."); jar.dependsOn(mainJarTask, assetsJarTask); @@ -91,7 +96,7 @@ private void createDistributionContentTasks(Project project, Distribution distri jar.getArchiveBaseName().convention(mainJarTask.flatMap(AbstractArchiveTask::getArchiveBaseName)); Map classpath = new HashMap<>(); - classpath.put("Class-Path", new PlayManifestClasspath(project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME), assetsJarTask.get().getArchiveFile().get().getAsFile())); + classpath.put("Class-Path", new PlayManifestClasspath(runtimeClasspath, componentAndFileProvider, assetsJarTask.get().getArchiveFile().get().getAsFile())); jar.getManifest().attributes(classpath); }); @@ -114,7 +119,7 @@ private void createDistributionContentTasks(Project project, Distribution distri copySpec.from(distributionJarTask); copySpec.from(assetsJarTask.flatMap(AbstractArchiveTask::getArchiveFile)); copySpec.from(project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME)); - copySpec.eachFile(new PrefixArtifactFileNames(project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME))); + copySpec.eachFile(new PrefixArtifactFileNames(componentAndFileProvider)); }); distSpec.into("bin", copySpec -> { @@ -219,10 +224,12 @@ private String capitalizeDistributionName(String distributionName) { * Represents a classpath to be defined in a jar manifest */ static class PlayManifestClasspath { - final Configuration configuration; final File assetsJarFile; + private final Provider> componentAndFileProvider; + private final FileCollection configuration; - public PlayManifestClasspath(Configuration configuration, File assetsJarFile) { + public PlayManifestClasspath(FileCollection configuration, Provider> componentAndFileProvider, File assetsJarFile) { + this.componentAndFileProvider = componentAndFileProvider; this.configuration = configuration; this.assetsJarFile = assetsJarFile; } @@ -230,7 +237,7 @@ public PlayManifestClasspath(Configuration configuration, File assetsJarFile) { @Override public String toString() { Stream allFiles = Stream.concat(configuration.getFiles().stream(), Collections.singleton(assetsJarFile).stream()); - Stream transformedFiles = allFiles.map(new PrefixArtifactFileNames(configuration)); + Stream transformedFiles = allFiles.map(new PrefixArtifactFileNames(componentAndFileProvider)); return String.join(" ", transformedFiles.collect(Collectors.toList()) ); @@ -238,11 +245,11 @@ public String toString() { } static class PrefixArtifactFileNames implements Action, Function { - private final Configuration configuration; + private final Provider> componentAndFileProvider; Map renames; - PrefixArtifactFileNames(Configuration configuration) { - this.configuration = configuration; + PrefixArtifactFileNames(Provider> componentAndFileProvider) { + this.componentAndFileProvider = componentAndFileProvider; } @Override @@ -268,26 +275,25 @@ private void calculateRenames() { private Map calculate() { Map files = new HashMap<>(); - for (ResolvedArtifactResult artifact : getResolvedArtifacts()) { - ComponentIdentifier componentId = artifact.getId().getComponentIdentifier(); + for (ComponentIdAndFile artifact : getResolvedArtifacts()) { + ComponentIdentifier componentId = artifact.getComponentId(); if (componentId instanceof ProjectComponentIdentifier) { // rename project dependencies ProjectComponentIdentifier projectComponentIdentifier = (ProjectComponentIdentifier) componentId; - files.put(artifact.getFile(), renameForProject(projectComponentIdentifier, artifact.getFile())); + files.put(artifact.getArtifactFile(), renameForProject(projectComponentIdentifier, artifact.getArtifactFile())); } else if (componentId instanceof ModuleComponentIdentifier) { ModuleComponentIdentifier moduleComponentIdentifier = (ModuleComponentIdentifier) componentId; - files.put(artifact.getFile(), renameForModule(moduleComponentIdentifier, artifact.getFile())); + files.put(artifact.getArtifactFile(), renameForModule(moduleComponentIdentifier, artifact.getArtifactFile())); } else { // don't rename other types of dependencies - files.put(artifact.getFile(), artifact.getFile().getName()); + files.put(artifact.getArtifactFile(), artifact.getArtifactFile().getName()); } } return Collections.unmodifiableMap(files); } - Set getResolvedArtifacts() { - ArtifactCollection artifacts = configuration.getIncoming().getArtifacts(); - return artifacts.getArtifacts(); + Set getResolvedArtifacts() { + return componentAndFileProvider.get(); } static String renameForProject(ProjectComponentIdentifier id, File file) { @@ -330,3 +336,34 @@ private static boolean hasExtension(File file, String extension) { return file.getPath().endsWith(extension); } } + +class ComponentIdAndFile { + private final ComponentIdentifier componentId; + private final File artifactFile; + + + ComponentIdAndFile(ComponentIdentifier componentId, File artifactFile) { + this.componentId = componentId; + this.artifactFile = artifactFile; + } + + public ComponentIdentifier getComponentId() { + return componentId; + } + + public File getArtifactFile() { + return artifactFile; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + ComponentIdAndFile componentIdAndFile = (ComponentIdAndFile) o; + return Objects.equals(componentId, componentIdAndFile.componentId) && Objects.equals(artifactFile, componentIdAndFile.artifactFile); + } + + @Override + public int hashCode() { + return Objects.hash(componentId, artifactFile); + } +} From 5ac76a5961dc01af5e3f42d0f99c5bfe72c62c6f Mon Sep 17 00:00:00 2001 From: Nouran Atef Date: Fri, 11 Jul 2025 21:17:18 +0200 Subject: [PATCH 2/5] Fix-Compatibility --- .../AbstractIntegrationTest.groovy | 2 +- .../plugins/PlayDistributionPlugin.java | 79 ++++++++++++++----- .../playframework/tasks/JavaScriptMinify.java | 24 +++--- 3 files changed, 72 insertions(+), 33 deletions(-) diff --git a/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy b/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy index 7db30364..a817984b 100644 --- a/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy +++ b/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy @@ -34,7 +34,7 @@ class AbstractIntegrationTest extends Specification { private GradleRunner createAndConfigureGradleRunner(String... arguments) { GradleRunner.create() .withProjectDir(projectDir) - .withArguments(arguments + '-s' as List) + .withArguments((arguments + ['-s','--configuration-cache']) as List) .withPluginClasspath().forwardOutput() } diff --git a/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java b/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java index 1478420f..069b3839 100644 --- a/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java +++ b/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java @@ -1,7 +1,6 @@ package org.gradle.playframework.plugins; import org.gradle.api.*; -import org.gradle.api.artifacts.ArtifactCollection; import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.component.ComponentIdentifier; import org.gradle.api.artifacts.component.ModuleComponentIdentifier; @@ -11,6 +10,7 @@ import org.gradle.api.distribution.DistributionContainer; import org.gradle.api.distribution.plugins.DistributionPlugin; import org.gradle.api.file.CopySpec; +import org.gradle.api.file.FileCollection; import org.gradle.api.file.FileCopyDetails; import org.gradle.api.provider.Provider; import org.gradle.api.provider.ProviderFactory; @@ -27,10 +27,7 @@ import org.gradle.util.GradleVersion; import java.io.File; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.Callable; import java.util.function.Function; import java.util.stream.Collectors; @@ -83,6 +80,14 @@ private void createDistributionContentTasks(Project project, Distribution distri final String capitalizedDistName = capitalizeDistributionName(distribution.getName()); final String jarTaskName = "create" + capitalizedDistName + "DistributionJar"; + Configuration runtimeClasspath = project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME); + Provider> artifactsProvider = runtimeClasspath.getIncoming().getArtifacts().getResolvedArtifacts(); + Provider> componentAndFileProvider = artifactsProvider.map(resultSet -> + resultSet.stream() + .map(result -> new ComponentIdAndFile(result.getId().getComponentIdentifier(), result.getFile())) + .collect(Collectors.toSet()) + ); + TaskProvider distributionJarTask = project.getTasks().register(jarTaskName, Jar.class, jar -> { jar.setDescription("Assembles an application jar suitable for deployment."); jar.dependsOn(mainJarTask, assetsJarTask); @@ -91,7 +96,7 @@ private void createDistributionContentTasks(Project project, Distribution distri jar.getArchiveBaseName().convention(mainJarTask.flatMap(AbstractArchiveTask::getArchiveBaseName)); Map classpath = new HashMap<>(); - classpath.put("Class-Path", new PlayManifestClasspath(project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME), assetsJarTask.get().getArchiveFile().get().getAsFile())); + classpath.put("Class-Path", new PlayManifestClasspath(runtimeClasspath, componentAndFileProvider, assetsJarTask.get().getArchiveFile().get().getAsFile())); jar.getManifest().attributes(classpath); }); @@ -114,7 +119,7 @@ private void createDistributionContentTasks(Project project, Distribution distri copySpec.from(distributionJarTask); copySpec.from(assetsJarTask.flatMap(AbstractArchiveTask::getArchiveFile)); copySpec.from(project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME)); - copySpec.eachFile(new PrefixArtifactFileNames(project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME))); + copySpec.eachFile(new PrefixArtifactFileNames(componentAndFileProvider)); }); distSpec.into("bin", copySpec -> { @@ -219,10 +224,12 @@ private String capitalizeDistributionName(String distributionName) { * Represents a classpath to be defined in a jar manifest */ static class PlayManifestClasspath { - final Configuration configuration; final File assetsJarFile; + private final Provider> componentAndFileProvider; + private final FileCollection configuration; - public PlayManifestClasspath(Configuration configuration, File assetsJarFile) { + public PlayManifestClasspath(FileCollection configuration, Provider> componentAndFileProvider, File assetsJarFile) { + this.componentAndFileProvider = componentAndFileProvider; this.configuration = configuration; this.assetsJarFile = assetsJarFile; } @@ -230,7 +237,7 @@ public PlayManifestClasspath(Configuration configuration, File assetsJarFile) { @Override public String toString() { Stream allFiles = Stream.concat(configuration.getFiles().stream(), Collections.singleton(assetsJarFile).stream()); - Stream transformedFiles = allFiles.map(new PrefixArtifactFileNames(configuration)); + Stream transformedFiles = allFiles.map(new PrefixArtifactFileNames(componentAndFileProvider)); return String.join(" ", transformedFiles.collect(Collectors.toList()) ); @@ -238,11 +245,11 @@ public String toString() { } static class PrefixArtifactFileNames implements Action, Function { - private final Configuration configuration; + private final Provider> componentAndFileProvider; Map renames; - PrefixArtifactFileNames(Configuration configuration) { - this.configuration = configuration; + PrefixArtifactFileNames(Provider> componentAndFileProvider) { + this.componentAndFileProvider = componentAndFileProvider; } @Override @@ -268,26 +275,25 @@ private void calculateRenames() { private Map calculate() { Map files = new HashMap<>(); - for (ResolvedArtifactResult artifact : getResolvedArtifacts()) { - ComponentIdentifier componentId = artifact.getId().getComponentIdentifier(); + for (ComponentIdAndFile artifact : getResolvedArtifacts()) { + ComponentIdentifier componentId = artifact.getComponentId(); if (componentId instanceof ProjectComponentIdentifier) { // rename project dependencies ProjectComponentIdentifier projectComponentIdentifier = (ProjectComponentIdentifier) componentId; - files.put(artifact.getFile(), renameForProject(projectComponentIdentifier, artifact.getFile())); + files.put(artifact.getArtifactFile(), renameForProject(projectComponentIdentifier, artifact.getArtifactFile())); } else if (componentId instanceof ModuleComponentIdentifier) { ModuleComponentIdentifier moduleComponentIdentifier = (ModuleComponentIdentifier) componentId; - files.put(artifact.getFile(), renameForModule(moduleComponentIdentifier, artifact.getFile())); + files.put(artifact.getArtifactFile(), renameForModule(moduleComponentIdentifier, artifact.getArtifactFile())); } else { // don't rename other types of dependencies - files.put(artifact.getFile(), artifact.getFile().getName()); + files.put(artifact.getArtifactFile(), artifact.getArtifactFile().getName()); } } return Collections.unmodifiableMap(files); } - Set getResolvedArtifacts() { - ArtifactCollection artifacts = configuration.getIncoming().getArtifacts(); - return artifacts.getArtifacts(); + Set getResolvedArtifacts() { + return componentAndFileProvider.get(); } static String renameForProject(ProjectComponentIdentifier id, File file) { @@ -330,3 +336,34 @@ private static boolean hasExtension(File file, String extension) { return file.getPath().endsWith(extension); } } + +class ComponentIdAndFile { + private final ComponentIdentifier componentId; + private final File artifactFile; + + + ComponentIdAndFile(ComponentIdentifier componentId, File artifactFile) { + this.componentId = componentId; + this.artifactFile = artifactFile; + } + + public ComponentIdentifier getComponentId() { + return componentId; + } + + public File getArtifactFile() { + return artifactFile; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + ComponentIdAndFile componentIdAndFile = (ComponentIdAndFile) o; + return Objects.equals(componentId, componentIdAndFile.componentId) && Objects.equals(artifactFile, componentIdAndFile.artifactFile); + } + + @Override + public int hashCode() { + return Objects.hash(componentId, artifactFile); + } +} diff --git a/src/main/java/org/gradle/playframework/tasks/JavaScriptMinify.java b/src/main/java/org/gradle/playframework/tasks/JavaScriptMinify.java index 0fc66409..a8cb0a6f 100644 --- a/src/main/java/org/gradle/playframework/tasks/JavaScriptMinify.java +++ b/src/main/java/org/gradle/playframework/tasks/JavaScriptMinify.java @@ -1,6 +1,7 @@ package org.gradle.playframework.tasks; import org.gradle.api.Action; +import org.gradle.api.file.*; import org.gradle.playframework.tasks.internal.JavaScriptMinifyParameters; import org.gradle.playframework.tasks.internal.JavaScriptMinifyRunnable; import org.gradle.playframework.tasks.internal.JavaScriptMinifyWorkAction; @@ -8,11 +9,6 @@ import org.gradle.playframework.tools.internal.javascript.JavaScriptCompileSpec; import org.gradle.playframework.tools.internal.javascript.SimpleStaleClassCleaner; import org.gradle.playframework.tools.internal.javascript.StaleClassCleaner; -import org.gradle.api.file.ConfigurableFileCollection; -import org.gradle.api.file.Directory; -import org.gradle.api.file.FileTree; -import org.gradle.api.file.FileVisitDetails; -import org.gradle.api.file.FileVisitor; import org.gradle.api.internal.file.FileOperations; import org.gradle.api.internal.file.RelativeFile; import org.gradle.api.internal.project.ProjectInternal; @@ -41,11 +37,13 @@ public class JavaScriptMinify extends SourceTask { private final WorkerExecutor workerExecutor; private final Property destinationDir; private final ConfigurableFileCollection compilerClasspath; + private final FileSystemOperations fileSystemOperations; @Inject - public JavaScriptMinify(WorkerExecutor workerExecutor) { + public JavaScriptMinify(WorkerExecutor workerExecutor, FileSystemOperations fileSystemOperations) { this.workerExecutor = workerExecutor; - this.include("**/*.js"); + this.fileSystemOperations = fileSystemOperations; + this.include("/*.js"); this.destinationDir = getProject().getObjects().directoryProperty(); this.compilerClasspath = getProject().files(); } @@ -81,7 +79,7 @@ void compileJavaScriptSources() { cleaner.addDirToClean(destinationDir.get().getAsFile()); cleaner.execute(); - MinifyFileVisitor visitor = new MinifyFileVisitor(); + MinifyFileVisitor visitor = new MinifyFileVisitor(fileSystemOperations); getSource().visit(visitor); JavaScriptCompileSpec spec = new DefaultJavaScriptCompileSpec(visitor.relativeFiles, destinationDir.get().getAsFile()); @@ -105,8 +103,13 @@ public void execute(JavaScriptMinifyParameters parameters) { * Copies each file in the source set to the output directory and gathers relative files for compilation */ class MinifyFileVisitor implements FileVisitor { + private final FileSystemOperations fileSystemOperations; List relativeFiles = new ArrayList<>(); + MinifyFileVisitor(FileSystemOperations fileSystemOperations) { + this.fileSystemOperations = fileSystemOperations; + } + @Override public void visitDir(FileVisitDetails dirDetails) { new File(destinationDir.get().getAsFile(), dirDetails.getRelativePath().getPathString()).mkdirs(); @@ -116,9 +119,8 @@ public void visitDir(FileVisitDetails dirDetails) { public void visitFile(final FileVisitDetails fileDetails) { final File outputFileDir = new File(destinationDir.get().getAsFile(), fileDetails.getRelativePath().getParent().getPathString()); - // Copy the raw form - FileOperations fileOperations = ((ProjectInternal) getProject()).getFileOperations(); - fileOperations.copy(copySpec -> copySpec.from(fileDetails.getFile()).into(outputFileDir)); + // Use FileSystemOperations to copy + fileSystemOperations.copy(copySpec -> copySpec.from(fileDetails.getFile()).into(outputFileDir)); // Capture the relative file relativeFiles.add(new RelativeFile(fileDetails.getFile(), fileDetails.getRelativePath())); From 9cb610f79de3464dc33513b91ccc5426f30a1e16 Mon Sep 17 00:00:00 2001 From: Nouran Atef Date: Fri, 11 Jul 2025 21:30:34 +0200 Subject: [PATCH 3/5] add cc conditionally --- .../gradle/playframework/AbstractIntegrationTest.groovy | 8 +++++++- .../org/gradle/playframework/WellBehavedPluginTest.groovy | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy b/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy index a817984b..d42fcec3 100644 --- a/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy +++ b/src/integTest/groovy/org/gradle/playframework/AbstractIntegrationTest.groovy @@ -10,6 +10,8 @@ import spock.lang.TempDir class AbstractIntegrationTest extends Specification { + boolean enableCC = true + @TempDir File temporaryFolder @@ -32,9 +34,13 @@ class AbstractIntegrationTest extends Specification { } private GradleRunner createAndConfigureGradleRunner(String... arguments) { + def args = (arguments + ['-s']) as List + if (enableCC) { + args += '--configuration-cache' + } GradleRunner.create() .withProjectDir(projectDir) - .withArguments((arguments + ['-s','--configuration-cache']) as List) + .withArguments(args) .withPluginClasspath().forwardOutput() } diff --git a/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy b/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy index 17f08b64..c06f0f73 100644 --- a/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy +++ b/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy @@ -4,6 +4,10 @@ import static org.gradle.playframework.fixtures.Repositories.playRepositories abstract class WellBehavedPluginTest extends AbstractIntegrationTest { + { + enableCC = false + } + def setup() { buildFile << """ plugins { From 0b8f1503337bec4289dd765efd24460c1151f59e Mon Sep 17 00:00:00 2001 From: Nouran Atef Date: Fri, 11 Jul 2025 21:43:25 +0200 Subject: [PATCH 4/5] disable cc to WellBehavedPluginTest --- .../org/gradle/playframework/WellBehavedPluginTest.groovy | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy b/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy index c06f0f73..28082235 100644 --- a/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy +++ b/src/integTest/groovy/org/gradle/playframework/WellBehavedPluginTest.groovy @@ -4,9 +4,6 @@ import static org.gradle.playframework.fixtures.Repositories.playRepositories abstract class WellBehavedPluginTest extends AbstractIntegrationTest { - { - enableCC = false - } def setup() { buildFile << """ @@ -21,6 +18,7 @@ abstract class WellBehavedPluginTest extends AbstractIntegrationTest { // TODO: End result should be that only the help task is realized def "does not realize all possible tasks"() { + enableCC = false buildFile << """ def configuredTasks = [] tasks.configureEach { From 21b9b352bb1feabbcfacd5b7362878b134eb6c6f Mon Sep 17 00:00:00 2001 From: Nouran Atef Date: Tue, 15 Jul 2025 00:40:22 +0200 Subject: [PATCH 5/5] Add comment for ResolvedArtifactResult --- .../org/gradle/playframework/plugins/PlayDistributionPlugin.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java b/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java index 069b3839..3519a116 100644 --- a/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java +++ b/src/main/java/org/gradle/playframework/plugins/PlayDistributionPlugin.java @@ -80,6 +80,7 @@ private void createDistributionContentTasks(Project project, Distribution distri final String capitalizedDistName = capitalizeDistributionName(distribution.getName()); final String jarTaskName = "create" + capitalizedDistName + "DistributionJar"; + // Workaround for gradle/gradle#25372: how to safely use ResolvedArtifactResult as task input. Configuration runtimeClasspath = project.getConfigurations().getByName(RUNTIME_CLASSPATH_CONFIGURATION_NAME); Provider> artifactsProvider = runtimeClasspath.getIncoming().getArtifacts().getResolvedArtifacts(); Provider> componentAndFileProvider = artifactsProvider.map(resultSet ->