Skip to content

Commit b2192d2

Browse files
committed
Initialize dependency configurations lazily
Gradle 8.14 allows dependency configurations to be "realized only when necessary." "This change can lead to reduced configuration time and lower memory usage in some builds."
1 parent 73f26c8 commit b2192d2

File tree

13 files changed

+60
-57
lines changed

13 files changed

+60
-57
lines changed

build-logic/src/main/kotlin/com/ibm/wala/gradle/javadoc.gradle.kts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ package com.ibm.wala.gradle
22

33
// Build configuration for projects that include `Javadoc` tasks.
44

5-
val javadocClasspath: Configuration by
6-
configurations.creating { description = "Classpath used during Javadoc creation." }
5+
val javadocClasspath by
6+
configurations.registering { description = "Classpath used during Javadoc creation." }
77

8-
val javadocSource: Configuration by
9-
configurations.creating {
8+
val javadocSource by
9+
configurations.registering {
1010
description = "Java source files from which Javadoc should be extracted."
1111
}
1212

1313
tasks.named<Javadoc>("javadoc") {
14-
classpath = configurations.named("javadocClasspath").get()
15-
source(configurations.named("javadocSource"))
14+
classpath = javadocClasspath.get()
15+
source(javadocSource)
1616
}
1717

1818
tasks.withType<Javadoc>().configureEach {

build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ val eclipseVersion: EclipseRelease by extra {
6363
// Javadoc documentation
6464
//
6565

66-
val aggregatedJavadocClasspath: Configuration by configurations.creating { isCanBeConsumed = false }
66+
val aggregatedJavadocClasspath by configurations.registering { isCanBeConsumed = false }
6767

68-
val aggregatedJavadocSource: Configuration by configurations.creating { isCanBeConsumed = false }
68+
val aggregatedJavadocSource by configurations.registering { isCanBeConsumed = false }
6969

7070
dependencies {
7171
subprojects {
@@ -84,7 +84,7 @@ tasks.register<Javadoc>("aggregatedJavadocs") {
8484
setDestinationDir(layout.buildDirectory.dir("docs/javadoc").get().asFile)
8585
title = "${project.name} $version API"
8686
(options as StandardJavadocDocletOptions).author(true)
87-
classpath = aggregatedJavadocClasspath
87+
classpath = aggregatedJavadocClasspath.get()
8888
source(aggregatedJavadocSource)
8989
}
9090

cast/build.gradle.kts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,21 @@ plugins {
99

1010
eclipse.project.natures("org.eclipse.pde.PluginNature")
1111

12-
val castCastSharedLibrary: Configuration by
13-
configurations.creating {
12+
val castCastSharedLibrary by
13+
configurations.registering {
1414
isCanBeConsumed = false
1515
attributes {
1616
attribute(OPTIMIZED_ATTRIBUTE, false)
1717
attribute(USAGE_ATTRIBUTE, objects.named(Usage::class, NATIVE_RUNTIME))
1818
}
1919
}
2020

21-
val castJsJavadocDestinationDirectory: Configuration by
22-
configurations.creating { isCanBeConsumed = false }
21+
val castJsJavadocDestinationDirectory by configurations.registering { isCanBeConsumed = false }
2322

24-
val castJsPackageListDirectory: Configuration by configurations.creating { isCanBeConsumed = false }
23+
val castJsPackageListDirectory by configurations.registering { isCanBeConsumed = false }
2524

26-
val xlatorTestSharedLibrary: Configuration by
27-
configurations.creating {
25+
val xlatorTestSharedLibrary by
26+
configurations.registering {
2827
isCanBeConsumed = false
2928
isTransitive = false
3029
attributes {
@@ -52,7 +51,7 @@ dependencies {
5251
xlatorTestSharedLibrary(projects.cast.xlatorTest)
5352
}
5453

55-
val castHeaderDirectory: Configuration by configurations.creating { isCanBeResolved = false }
54+
val castHeaderDirectory by configurations.registering { isCanBeResolved = false }
5655

5756
artifacts.add(
5857
castHeaderDirectory.name,
@@ -61,8 +60,8 @@ artifacts.add(
6160
tasks.named<Javadoc>("javadoc") {
6261
inputs.files(castJsPackageListDirectory)
6362

64-
val extdocURL = castJsJavadocDestinationDirectory.singleFile
65-
val packagelistLoc = castJsPackageListDirectory.singleFile
63+
val extdocURL = castJsJavadocDestinationDirectory.get().singleFile
64+
val packagelistLoc = castJsPackageListDirectory.get().singleFile
6665
inputs.property("extdocURL", extdocURL)
6766
inputs.property("packagelistLoc", packagelistLoc)
6867
(options as StandardJavadocDocletOptions).linksOffline(
@@ -71,7 +70,7 @@ tasks.named<Javadoc>("javadoc") {
7170

7271
tasks.named<Test>("test") {
7372
inputs.files(xlatorTestSharedLibrary)
74-
systemProperty("java.library.path", xlatorTestSharedLibrary.singleFile.parent)
73+
systemProperty("java.library.path", xlatorTestSharedLibrary.get().singleFile.parent)
7574

7675
if (rootProject.extra["isWindows"] as Boolean) {
7776

@@ -85,6 +84,7 @@ tasks.named<Test>("test") {
8584

8685
inputs.files(castCastSharedLibrary)
8786
val pathEntry = environment.entries.find { it.key.equals("path", true) }!!
88-
environment(pathEntry.key, "${pathEntry.value};${castCastSharedLibrary.singleFile.parent}")
87+
environment(
88+
pathEntry.key, "${pathEntry.value};${castCastSharedLibrary.get().singleFile.parent}")
8989
}
9090
}

cast/java/ecj/build.gradle.kts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ walaEclipseMavenCentral {
1212
)
1313
}
1414

15-
val runSourceDirectory: Configuration by configurations.creating { isCanBeConsumed = false }
15+
val runSourceDirectory by configurations.registering { isCanBeConsumed = false }
1616

1717
dependencies {
1818
implementation(libs.eclipse.ecj)
@@ -36,7 +36,10 @@ val run by
3636
// this is for testing purposes
3737
args =
3838
listOf(
39-
"-sourceDir", runSourceDirectory.files.single().toString(), "-mainClass", "LArray1")
39+
"-sourceDir",
40+
runSourceDirectory.get().files.single().toString(),
41+
"-mainClass",
42+
"LArray1")
4043

4144
// log output to file, although we don"t validate it
4245
val outFile = project.layout.buildDirectory.file("SourceDirCallGraph.log")

cast/java/test/data/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ val testJar by
2222
from(compileTestJava)
2323
}
2424

25-
val testJarConfig: Configuration by configurations.creating { isCanBeResolved = false }
25+
val testJarConfig by configurations.registering { isCanBeResolved = false }
2626

27-
val testJavaSourceDirectory: Configuration by configurations.creating { isCanBeResolved = false }
27+
val testJavaSourceDirectory by configurations.registering { isCanBeResolved = false }
2828

2929
artifacts {
3030
add(testJarConfig.name, testJar)

cast/js/build.gradle.kts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,9 @@ dependencies {
2828
val createPackageList by
2929
tasks.registering(CreatePackageList::class) { sourceSet(sourceSets.main.get()) }
3030

31-
val packageListDirectory: Configuration by configurations.creating { isCanBeResolved = false }
31+
val packageListDirectory by configurations.registering { isCanBeResolved = false }
3232

33-
val javadocDestinationDirectory: Configuration by
34-
configurations.creating { isCanBeResolved = false }
33+
val javadocDestinationDirectory by configurations.registering { isCanBeResolved = false }
3534

3635
tasks.named<Test>("test") { maxHeapSize = "800M" }
3736

@@ -59,7 +58,7 @@ val unpackAjaxslt by
5958

6059
val processTestResources by tasks.existing(Copy::class) { from(unpackAjaxslt) { into("ajaxslt") } }
6160

62-
val testResources: Configuration by configurations.creating { isCanBeResolved = false }
61+
val testResources by configurations.registering { isCanBeResolved = false }
6362

6463
artifacts {
6564
add(javadocDestinationDirectory.name, tasks.javadoc)

cast/js/html/nu_validator/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins { id("com.ibm.wala.gradle.java") }
22

3-
val extraTestResources: Configuration by configurations.creating { isCanBeConsumed = false }
3+
val extraTestResources by configurations.registering { isCanBeConsumed = false }
44

55
dependencies {
66
api(projects.cast.js)

cast/js/rhino/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
id("com.ibm.wala.gradle.publishing")
66
}
77

8-
val extraTestResources: Configuration by configurations.creating { isCanBeConsumed = false }
8+
val extraTestResources by configurations.registering { isCanBeConsumed = false }
99

1010
dependencies {
1111
extraTestResources(project(mapOf("path" to ":cast:js", "configuration" to "testResources")))

cast/smoke_main/build.gradle.kts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,26 @@ plugins {
1313
id("com.ibm.wala.gradle.subproject")
1414
}
1515

16-
val coreResources: Configuration by
17-
configurations.creating {
16+
val coreResources by
17+
configurations.registering {
1818
isCanBeConsumed = false
1919
isTransitive = false
2020
attributes {
2121
attribute(LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements::class, RESOURCES))
2222
}
2323
}
2424

25-
val smokeMainExtraPathElements: Configuration by
26-
configurations.creating {
25+
val smokeMainExtraPathElements by
26+
configurations.registering {
2727
isCanBeConsumed = false
2828
isTransitive = false
2929
attributes {
3030
attribute(LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements::class, CLASSES))
3131
}
3232
}
3333

34-
fun createXlatorConfig(isOptimized: Boolean): Configuration =
35-
configurations.create(
34+
fun createXlatorConfig(isOptimized: Boolean): NamedDomainObjectProvider<Configuration> =
35+
configurations.register(
3636
"xlatorTest${if (isOptimized) "Release" else "Debug"}SharedLibraryConfig") {
3737
isCanBeConsumed = false
3838
isTransitive = false
@@ -64,6 +64,7 @@ application {
6464
val libxlatorTest =
6565
(if (isOptimized) xlatorTestReleaseSharedLibraryConfig
6666
else xlatorTestDebugSharedLibraryConfig)
67+
.get()
6768
.singleFile
6869
addRpath(libxlatorTest)
6970
addCastLibrary(this@whenElementFinalized)
@@ -86,7 +87,7 @@ application {
8687
pathElements.addAll(files("../build/classes/java/test", libxlatorTest.parent))
8788

8889
// "primordial.txt" resource loaded during test
89-
pathElements.add(coreResources.singleFile)
90+
pathElements.add(coreResources.get().singleFile)
9091
inputs.files(coreResources)
9192

9293
// additional supporting Java class files

cast/xlator_test/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
id("com.ibm.wala.gradle.subproject")
66
}
77

8-
val castHeaderDirectory: Configuration by configurations.creating { isCanBeConsumed = false }
8+
val castHeaderDirectory by configurations.registering { isCanBeConsumed = false }
99

1010
dependencies {
1111
castHeaderDirectory(project(mapOf("path" to ":cast", "configuration" to "castHeaderDirectory")))

0 commit comments

Comments
 (0)