This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch gradle-deprecations in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 80d4def8687fb1b1391cba30ac3cbbfd2b4b309b Author: James Daugherty <[email protected]> AuthorDate: Wed Jun 4 12:19:19 2025 -0400 CopyProcessingSpec.setFileMode(Integer) & CopyProcessingSpec.setDirMode(Integer) methods are deprecated. --- gradle/java-config.gradle | 9 +++-- grails-gradle/gradle/docs-config.gradle | 9 +++-- grails-gradle/gradle/java-config.gradle | 19 +++++++--- .../profiles/GrailsProfileGradlePlugin.groovy | 27 +++++++++++---- .../publishing/GrailsPublishGradlePlugin.groovy | 40 +++++++++++++++------- grails-wrapper/build.gradle | 4 ++- 6 files changed, 80 insertions(+), 28 deletions(-) diff --git a/gradle/java-config.gradle b/gradle/java-config.gradle index 9c6c845e9c..5cbbf2519c 100644 --- a/gradle/java-config.gradle +++ b/gradle/java-config.gradle @@ -56,7 +56,12 @@ tasks.withType(Jar).configureEach { tasks.withType(AbstractArchiveTask).configureEach { preserveFileTimestamps = false // to prevent timestamp mismatches reproducibleFileOrder = true // to keep the same ordering - dirMode = 0755 // To avoid platform specific defaults - fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + filePermissions { permissions -> + permissions.unix(0644) + } + dirPermissions { permissions -> + permissions.unix(0755) + } } diff --git a/grails-gradle/gradle/docs-config.gradle b/grails-gradle/gradle/docs-config.gradle index fa1946d7e8..e065fa8ab7 100644 --- a/grails-gradle/gradle/docs-config.gradle +++ b/grails-gradle/gradle/docs-config.gradle @@ -62,8 +62,13 @@ tasks.named('javadoc').configure { tasks.named('javadocJar', Jar).configure { Jar jar -> jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } jar.dependsOn(groovydocTask) diff --git a/grails-gradle/gradle/java-config.gradle b/grails-gradle/gradle/java-config.gradle index 59121df80a..7b914b862a 100644 --- a/grails-gradle/gradle/java-config.gradle +++ b/grails-gradle/gradle/java-config.gradle @@ -29,8 +29,14 @@ tasks.named('sourcesJar', Jar).configure { Jar jar -> SourceSetContainer sourceSets = project.extensions.getByType(JavaPluginExtension).sourceSets jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } + jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE // don't only include main, but any source set @@ -64,6 +70,11 @@ tasks.withType(Jar).configureEach { tasks.withType(AbstractArchiveTask).configureEach { preserveFileTimestamps = false // to prevent timestamp mismatches reproducibleFileOrder = true // to keep the same ordering - dirMode = 0755 // To avoid platform specific defaults - fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + filePermissions { permissions -> + permissions.unix(0644) + } + dirPermissions { permissions -> + permissions.unix(0755) + } } diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/GrailsProfileGradlePlugin.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/GrailsProfileGradlePlugin.groovy index 90bc7a195e..9dd4d2a276 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/GrailsProfileGradlePlugin.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/GrailsProfileGradlePlugin.groovy @@ -187,8 +187,13 @@ class GrailsProfileGradlePlugin implements Plugin<Project> { jar.from(project.files(project.layout.buildDirectory.dir('resources/profile'), project.layout.buildDirectory.dir('classes/profile'))) jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } } TaskProvider<Jar> sourcesJarTask = project.tasks.register('sourcesJar', Jar) @@ -208,8 +213,13 @@ class GrailsProfileGradlePlugin implements Plugin<Project> { jar.description = 'Assembles a jar archive containing the profile sources.' jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } } def profileReadme = project.layout.buildDirectory.file('profile.txt') @@ -233,8 +243,13 @@ class GrailsProfileGradlePlugin implements Plugin<Project> { javadocJarTask.configure { Jar jar -> jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } jar.dependsOn(readmeGeneration) // https://central.sonatype.org/publish/requirements/#supply-javadoc-and-sources diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/publishing/GrailsPublishGradlePlugin.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/publishing/GrailsPublishGradlePlugin.groovy index 0300792df8..e983c45a8a 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/publishing/GrailsPublishGradlePlugin.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/publishing/GrailsPublishGradlePlugin.groovy @@ -179,20 +179,19 @@ Note: if project properties are used, the properties must be defined prior to ap projectPluginManager.apply(MavenPublishPlugin) boolean localSigning = false - if(isRelease) { + if (isRelease) { String signingKeyId = project.findProperty('signing.keyId') ?: System.getenv('SIGNING_KEY') extraPropertiesExtension.setProperty('signing.keyId', signingKeyId) String secringFile = project.findProperty('signing.secretKeyRingFile') ?: System.getenv('SIGNING_KEYRING') - if(!secringFile) { + if (!secringFile) { project.logger.info("No keyring file has been specified. Assuming the use of local gpgCommand instead.") localSigning = true extraPropertiesExtension.setProperty('signing.gnupg.keyName', signingKeyId) - } - else { + } else { extraPropertiesExtension.setProperty('signing.secretKeyRingFile', secringFile) String signingPassphrase = project.findProperty('signing.password') ?: System.getenv('SIGNING_PASSPHRASE') - if(signingPassphrase) { + if (signingPassphrase) { extraPropertiesExtension.setProperty('signing.password', signingPassphrase) } } @@ -229,7 +228,7 @@ Note: if project properties are used, the properties must be defined prior to ap if (!hasNexusPublishApplied) { project.rootProject.nexusPublishing { - if(nexusPublishDescription) { + if (nexusPublishDescription) { repositoryDescription = "${nexusPublishDescription}" } repositories { @@ -430,7 +429,7 @@ Note: if project properties are used, the properties must be defined prior to ap if (isRelease) { extensionContainer.configure(SigningExtension, { it.required = isRelease - if(localSigning) { + if (localSigning) { it.useGpgCmd() } @@ -556,8 +555,13 @@ Note: if project properties are used, the properties must be defined prior to ap tasks.named('javadocJar', Jar).configure { Jar jar -> jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } Groovydoc groovyDocTask = tasks.findByName('groovydoc') if (groovyDocTask) { @@ -577,8 +581,13 @@ Note: if project properties are used, the properties must be defined prior to ap SourceSetContainer sourceSets = SourceSets.findSourceSets(project) jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE // don't only include main, but any source set @@ -594,8 +603,13 @@ Note: if project properties are used, the properties must be defined prior to ap jar.dependsOn('testClasses') jar.reproducibleFileOrder = true jar.preserveFileTimestamps = false - jar.dirMode = 0755 // To avoid platform specific defaults - jar.fileMode = 0644 // to avoid platform specific defaults + // to avoid platform specific defaults, set the permissions consistently + jar.filePermissions { permissions -> + permissions.unix(0644) + } + jar.dirPermissions { permissions -> + permissions.unix(0755) + } SourceSetContainer sourceSets = SourceSets.findSourceSets(project) jar.from sourceSets.test.output jar.inputs.files(sourceSets.test.output) diff --git a/grails-wrapper/build.gradle b/grails-wrapper/build.gradle index 9e9a02617c..1631f09f60 100644 --- a/grails-wrapper/build.gradle +++ b/grails-wrapper/build.gradle @@ -97,7 +97,9 @@ project.extensions.getByType(DistributionContainer).configureEach { from(startScripts) { into '' - fileMode = 0755 + filePermissions { permissions -> + permissions.unix("755") + } } from(layout.projectDirectory.dir('distribution-artifacts')) {
