Skip to content

Commit

Permalink
Fixed warnings in Gradle files
Browse files Browse the repository at this point in the history
Replace some deprecated methods and use lazy configuration where possible.
  • Loading branch information
MGaetan89 authored and utzcoz committed Feb 19, 2024
1 parent ebee7e0 commit 36d0366
Show file tree
Hide file tree
Showing 11 changed files with 150 additions and 136 deletions.
30 changes: 18 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,9 @@ project.afterEvaluate {
// prevent compiler from complaining about duplicate classes...
def excludeFromCompile = compilerConfiguration.appendNode 'excludeFromCompile'
configAnnotationProcessing.each { Project subProject ->
def buildDirectory = subProject.layout.buildDirectory.get().asFile
excludeFromCompile.appendNode('directory',
[url: "file://${subProject.buildDir}/classes/java/main/generated", includeSubdirectories: "true"])
[url: "file://$buildDirectory/classes/java/main/generated", includeSubdirectories: "true"])
}

// replace existing annotationProcessing tag with a new one...
Expand All @@ -73,13 +74,16 @@ project.afterEvaluate {
processor(name: "org.robolectric.annotation.processing.RobolectricProcessor")

processorPath(useClasspath: "false") {
def processorRuntimeCfg = project.project(":processor").configurations['runtime']
processorRuntimeCfg.allArtifacts.each { artifact ->
entry(name: artifact.file)
}
processorRuntimeCfg.files.each { file ->
entry(name: file)
}
project.project(":processor")
.configurations.named("runtime")
.configure { runtimeConfiguration ->
runtimeConfiguration.allArtifacts.each { artifact ->
entry(name: artifact.file)
}
runtimeConfiguration.files.each { file ->
entry(name: file)
}
}
}
}
}
Expand All @@ -91,7 +95,9 @@ project.afterEvaluate {
apply plugin: 'nebula-aggregate-javadocs'

rootProject.gradle.projectsEvaluated {
rootProject.tasks['aggregateJavadocs'].failOnError = false
rootProject.tasks.named("aggregateJavadocs").configure {
it.failOnError = false
}
}

gradle.projectsEvaluated {
Expand Down Expand Up @@ -122,10 +128,10 @@ gradle.projectsEvaluated {
gradle.projectsEvaluated {
tasks.register('aggregateJsondocs', Copy) {
project.subprojects.findAll { it.plugins.hasPlugin(ShadowsPlugin) }.each { subproject ->
dependsOn subproject.tasks["compileJava"]
from "${subproject.buildDir}/docs/json"
dependsOn subproject.tasks.named("compileJava")
from subproject.layout.buildDirectory.dir("docs/json")
}
into "$buildDir/docs/json"
into layout.buildDirectory.dir("docs/json")
}
}

Expand Down
16 changes: 8 additions & 8 deletions buildSrc/src/main/groovy/AndroidSdk.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ class AndroidSdk implements Comparable<AndroidSdk> {
static final N_MR1 = new AndroidSdk(25, "7.1.0_r7", "r1")
static final O = new AndroidSdk(26, "8.0.0_r4", "r1")
static final O_MR1 = new AndroidSdk(27, "8.1.0", "4611349")
static final P = new AndroidSdk(28, "9", "4913185-2");
static final Q = new AndroidSdk(29, "10", "5803371");
static final R = new AndroidSdk(30, "11", "6757853");
static final S = new AndroidSdk(31, "12", "7732740");
static final S_V2 = new AndroidSdk(32, "12.1", "8229987");
static final TIRAMISU = new AndroidSdk(33, "13", "9030017");
static final U = new AndroidSdk(34, "14", "10818077");
static final P = new AndroidSdk(28, "9", "4913185-2")
static final Q = new AndroidSdk(29, "10", "5803371")
static final R = new AndroidSdk(30, "11", "6757853")
static final S = new AndroidSdk(31, "12", "7732740")
static final S_V2 = new AndroidSdk(32, "12.1", "8229987")
static final TIRAMISU = new AndroidSdk(33, "13", "9030017")
static final U = new AndroidSdk(34, "14", "10818077")

static final List<AndroidSdk> ALL_SDKS = [
KITKAT,
Expand All @@ -26,7 +26,7 @@ class AndroidSdk implements Comparable<AndroidSdk> {
static final MAX_SDK = Collections.max(ALL_SDKS)

public final int apiLevel
private final String androidVersion
public final String androidVersion
private final String frameworkSdkBuildVersion

AndroidSdk(int apiLevel, String androidVersion, String frameworkSdkBuildVersion) {
Expand Down
8 changes: 4 additions & 4 deletions buildSrc/src/main/groovy/ProvideBuildClasspathTask.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ class ProvideBuildClasspathTask extends DefaultTask {
@OutputFile File outFile

@TaskAction
public void writeProperties() throws Exception {
void writeProperties() throws Exception {
final Properties props = new Properties()

String preinstrumentedKey = "robolectric.usePreinstrumentedJars";
String preinstrumentedKey = "robolectric.usePreinstrumentedJars"
boolean usePreinstrumentedJars =
Boolean.parseBoolean(
System.getProperty(preinstrumentedKey, "true"));
System.getProperty(preinstrumentedKey, "true"))

AndroidSdk.ALL_SDKS.each { androidSdk ->
String coordinates =
usePreinstrumentedJars ?
androidSdk.preinstrumentedCoordinates : androidSdk.coordinates;
androidSdk.preinstrumentedCoordinates : androidSdk.coordinates
def config =
project.configurations.create("sdk${androidSdk.apiLevel}")
project.dependencies.add(
Expand Down
50 changes: 26 additions & 24 deletions buildSrc/src/main/groovy/ShadowsPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -16,37 +16,39 @@ class ShadowsPlugin implements Plugin<Project> {
annotationProcessor project.project(":processor")
}

def compileJavaTask = project.tasks["compileJava"]

// write generated Java into its own dir... see https://github.com/gradle/gradle/issues/4956
def generatedSrcRelPath = 'build/generated/src/apt/main'
def generatedSrcDir = project.file(generatedSrcRelPath)

project.sourceSets.main.java { srcDir generatedSrcRelPath }
project.mkdir(generatedSrcDir)
compileJavaTask.options.annotationProcessorGeneratedSourcesDirectory = generatedSrcDir
compileJavaTask.outputs.dir(generatedSrcDir)

compileJavaTask.doFirst {
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.jsonDocsEnabled=true")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.jsonDocsDir=${project.buildDir}/docs/json")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.shadowPackage=${project.shadows.packageName}")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.sdkCheckMode=${project.shadows.sdkCheckMode}")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.sdks=${project.rootProject.buildDir}/sdks.txt")
def generatedSrcDir = project.file("build/generated/src/apt/main")

project.tasks.named("compileJava").configure { task ->
task.options.annotationProcessorGeneratedSourcesDirectory = generatedSrcDir

task.doFirst {
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.jsonDocsEnabled=true")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.jsonDocsDir=${project.layout.buildDirectory.get().asFile}/docs/json")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.shadowPackage=${project.shadows.packageName}")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.sdkCheckMode=${project.shadows.sdkCheckMode}")
options.compilerArgs.add("-Aorg.robolectric.annotation.processing.sdks=${project.rootProject.layout.buildDirectory.get().asFile}/sdks.txt")
}
}

// include generated sources in javadoc jar
project.tasks['javadoc'].source(generatedSrcDir)
project.tasks.named("javadoc").configure { task ->
task.source(generatedSrcDir)
}

// verify that we have the apt-generated files in our javadoc and sources jars
project.tasks['javadocJar'].doLast { task ->
def shadowPackageNameDir = project.shadows.packageName.replaceAll(/\./, '/')
checkForFile(task.archivePath, "${shadowPackageNameDir}/Shadows.html")
project.tasks.named("javadocJar").configure { task ->
task.doLast {
def shadowPackageNameDir = project.shadows.packageName.replaceAll(/\./, '/')
checkForFile(task.archivePath, "${shadowPackageNameDir}/Shadows.html")
}
}

project.tasks['sourcesJar'].doLast { task ->
def shadowPackageNameDir = project.shadows.packageName.replaceAll(/\./, '/')
checkForFile(task.archivePath, "${shadowPackageNameDir}/Shadows.java")
project.tasks.named("sourcesJar").configure { task ->
task.doLast {
def shadowPackageNameDir = project.shadows.packageName.replaceAll(/\./, '/')
checkForFile(task.archivePath, "${shadowPackageNameDir}/Shadows.java")
}
}

project.rootProject.configAnnotationProcessing += project
Expand All @@ -58,7 +60,7 @@ class ShadowsPlugin implements Plugin<Project> {
*
* See https://discuss.gradle.org/t/gradle-not-compiles-with-solder-tooling-jar/7583/20
*/
project.tasks.withType(JavaCompile) { options.fork = true }
project.tasks.withType(JavaCompile).configureEach { options.fork = true }
}

static class ShadowsPluginExtension {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ public void apply(Project project) {
// incremental compile breaks (run `gradlew -i classes` twice to see impact):
t ->
t.doFirst(
new Action<Task>() {
new Action<>() {
@Override
public void execute(Task task) {
public void execute(@NotNull Task task) {
List<File> aarFiles = AarDepsPlugin.this.findAarFiles(t.getClasspath());
if (!aarFiles.isEmpty()) {
throw new IllegalStateException(
Expand Down Expand Up @@ -91,8 +91,9 @@ public void transform(@NotNull TransformOutputs outputs) {
super.transform(
new TransformOutputs() {
// This is the one that ExtractAarTransform calls.
@NotNull
@Override
public File dir(Object o) {
public File dir(@NotNull Object o) {
// ExtractAarTransform needs a place to extract the AAR. We don't really need to
// register this as an output, but it'd be tricky to avoid it.
File dir = outputs.dir(o);
Expand All @@ -105,8 +106,9 @@ public File dir(Object o) {
return outputs.dir(o);
}

@NotNull
@Override
public File file(Object o) {
public File file(@NotNull Object o) {
throw new IllegalStateException("shouldn't be called");
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.testing.Test

public class AndroidProjectConfigPlugin implements Plugin<Project> {
class AndroidProjectConfigPlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
void apply(Project project) {
project.android.testOptions.unitTests.all {
// TODO: DRY up code with RoboJavaModulePlugin...
testLogging {
Expand All @@ -26,8 +26,8 @@ public class AndroidProjectConfigPlugin implements Plugin<Project> {
}

def forwardedSystemProperties = System.properties
.findAll { k,v -> k.startsWith("robolectric.") }
.collect { k,v -> "-D$k=$v" }
.findAll { k, v -> k.startsWith("robolectric.") }
.collect { k, v -> "-D$k=$v" }
jvmArgs = forwardedSystemProperties
jvmArgs += [
'--add-opens=java.base/java.lang=ALL-UNNAMED',
Expand All @@ -51,8 +51,8 @@ public class AndroidProjectConfigPlugin implements Plugin<Project> {
}

project.task('provideBuildClasspath', type: ProvideBuildClasspathTask) {
File outDir = new File(project.buildDir, "generated/robolectric")
outFile = new File(outDir, 'robolectric-deps.properties')
File outDir = project.layout.buildDirectory.dir("generated/robolectric").get().asFile
outFile = new File(outDir, "robolectric-deps.properties")

project.android.sourceSets['test'].resources.srcDir(outDir)
}
Expand All @@ -66,7 +66,7 @@ public class AndroidProjectConfigPlugin implements Plugin<Project> {
}

// Only run tests in the debug variant. This is to avoid running tests twice when `./gradlew test` is run at the top-level.
project.tasks.withType(Test) {
project.tasks.withType(Test).configureEach {
onlyIf { variantName.toLowerCase().contains('debug') }
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ class RoboJavaModulePlugin implements Plugin<Project> {

def skipErrorprone = System.getenv('SKIP_ERRORPRONE') == "true"
if (!skipErrorprone) {
apply plugin: "net.ltgt.errorprone"
project.dependencies {
errorprone(libs.error.prone.core)
errorproneJavac(libs.error.prone.javac)
}
apply plugin: "net.ltgt.errorprone"
project.dependencies {
errorprone(libs.error.prone.core)
errorproneJavac(libs.error.prone.javac)
}
}

apply plugin: AarDepsPlugin

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

tasks.withType(JavaCompile) { task ->
tasks.withType(JavaCompile).configureEach { task ->
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

Expand Down Expand Up @@ -68,8 +68,8 @@ class RoboJavaModulePlugin implements Plugin<Project> {
}

def forwardedSystemProperties = System.properties
.findAll { k,v -> k.startsWith("robolectric.") }
.collect { k,v -> "-D$k=$v" }
.findAll { k, v -> k.startsWith("robolectric.") }
.collect { k, v -> "-D$k=$v" }
jvmArgs = forwardedSystemProperties
jvmArgs += [
'--add-opens=java.base/java.lang=ALL-UNNAMED',
Expand Down
Loading

0 comments on commit 36d0366

Please sign in to comment.