Skip to content

Commit db9b15a

Browse files
committed
Fix caching of relevant tasks
1 parent 1135b24 commit db9b15a

File tree

5 files changed

+15
-21
lines changed

5 files changed

+15
-21
lines changed

projectguard/src/main/kotlin/com/rubensousa/projectguard/plugin/ProjectGuardExtension.kt

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import com.rubensousa.projectguard.plugin.internal.ReportSpec
3030
import com.rubensousa.projectguard.plugin.internal.getDependencyPath
3131
import org.gradle.api.Action
3232
import org.gradle.api.artifacts.MinimalExternalModuleDependency
33-
import org.gradle.api.internal.provider.DefaultProvider
3433
import org.gradle.api.model.ObjectFactory
3534
import org.gradle.api.provider.Provider
3635
import org.gradle.kotlin.dsl.listProperty
@@ -46,15 +45,6 @@ abstract class ProjectGuardExtension @Inject constructor(
4645
private val dependencyRestrictionSpecs = objects.listProperty<DependencyRestrictionSpec>()
4746
private val reportSpec = objects.property<ReportSpec>().convention(ReportSpec(showLibrariesInGraph = false))
4847
private val options = objects.property<PluginOptions>().convention(PluginOptions(lifecycleTask = null))
49-
private val specProvider = DefaultProvider {
50-
ProjectGuardSpec(
51-
guardSpecs = guardSpecs.get(),
52-
moduleRestrictionSpecs = moduleRestrictionSpecs.get(),
53-
dependencyRestrictionSpecs = dependencyRestrictionSpecs.get(),
54-
reportSpec = reportSpec.get(),
55-
options = options.get()
56-
)
57-
}
5848

5949
override fun restrictModule(modulePath: String, action: Action<ModuleRestrictionScope>) {
6050
val scope = ModuleRestrictionScopeImpl()
@@ -146,11 +136,13 @@ abstract class ProjectGuardExtension @Inject constructor(
146136
}
147137

148138
internal fun getSpec(): ProjectGuardSpec {
149-
return getSpecProvider().get()
150-
}
151-
152-
internal fun getSpecProvider(): Provider<ProjectGuardSpec> {
153-
return specProvider
139+
return ProjectGuardSpec(
140+
guardSpecs = guardSpecs.get(),
141+
moduleRestrictionSpecs = moduleRestrictionSpecs.get(),
142+
dependencyRestrictionSpecs = dependencyRestrictionSpecs.get(),
143+
reportSpec = reportSpec.get(),
144+
options = options.get()
145+
)
154146
}
155147

156148
}

projectguard/src/main/kotlin/com/rubensousa/projectguard/plugin/ProjectGuardPlugin.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ class ProjectGuardPlugin : Plugin<Project> {
292292
) {
293293
group = "verification"
294294
description = "Verifies if there are any dependency restrictions"
295-
pluginSpec.set(extension.getSpecProvider())
295+
pluginSpec.set(project.provider { extension.getSpec() })
296296
outputs.upToDateWhen { false }
297297
}
298298
}
@@ -307,7 +307,7 @@ class ProjectGuardPlugin : Plugin<Project> {
307307
) {
308308
group = "verification"
309309
description = "Verifies if there are any dependency restrictions"
310-
pluginSpec.set(extension.getSpecProvider())
310+
pluginSpec.set(project.provider { extension.getSpec() })
311311
outputs.upToDateWhen { false }
312312
}
313313
}
@@ -323,7 +323,7 @@ class ProjectGuardPlugin : Plugin<Project> {
323323
group = "other"
324324
description = "Generates a JSON report of all dependency restrictions for this module."
325325
projectPath.set(project.path)
326-
specProperty.set(extension.getSpecProvider())
326+
specProperty.set(project.provider { extension.getSpec() })
327327
outputFile.set(
328328
project.layout.buildDirectory.file(jsonReportFilePath)
329329
)

projectguard/src/main/kotlin/com/rubensousa/projectguard/plugin/internal/task/TaskDependencyDump.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ import com.rubensousa.projectguard.plugin.internal.report.JsonFileWriter
2525
import org.gradle.api.DefaultTask
2626
import org.gradle.api.file.RegularFileProperty
2727
import org.gradle.api.provider.Property
28+
import org.gradle.api.tasks.CacheableTask
2829
import org.gradle.api.tasks.Input
2930
import org.gradle.api.tasks.OutputFile
3031
import org.gradle.api.tasks.TaskAction
3132
import java.io.File
3233

34+
@CacheableTask
3335
internal abstract class TaskDependencyDump : DefaultTask() {
3436

3537
@get:Input

projectguard/src/main/kotlin/com/rubensousa/projectguard/plugin/internal/task/TaskRestrictionDump.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import kotlinx.serialization.json.Json
3030
import org.gradle.api.DefaultTask
3131
import org.gradle.api.file.RegularFileProperty
3232
import org.gradle.api.provider.Property
33+
import org.gradle.api.tasks.CacheableTask
3334
import org.gradle.api.tasks.Input
3435
import org.gradle.api.tasks.InputFile
3536
import org.gradle.api.tasks.OutputFile
@@ -38,6 +39,7 @@ import org.gradle.api.tasks.PathSensitivity
3839
import org.gradle.api.tasks.TaskAction
3940
import java.io.File
4041

42+
@CacheableTask
4143
internal abstract class TaskRestrictionDump : DefaultTask() {
4244

4345
@get:Input

projectguard/src/test/kotlin/com/rubensousa/projectguard/plugin/PluginCacheTest.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ class PluginCacheTest {
6666
assertThat(nextResult).isEqualTo(TaskOutcome.UP_TO_DATE)
6767
}
6868

69-
@Ignore("Not working at the moment")
7069
@Test
7170
fun `outputs from projectGuardDependencyDump are re-used from cache`() {
7271
// given
@@ -119,7 +118,7 @@ class PluginCacheTest {
119118
assertThat(result).isEqualTo(TaskOutcome.UP_TO_DATE)
120119
}
121120

122-
@Ignore("Not working at the moment")
121+
@Ignore("Not working for now")
123122
@Test
124123
fun `outputs from projectGuardAggregateDependencyDump are re-used from cache`() {
125124
// given
@@ -170,7 +169,6 @@ class PluginCacheTest {
170169
assertThat(result).isEqualTo(TaskOutcome.UP_TO_DATE)
171170
}
172171

173-
@Ignore("Not working at the moment")
174172
@Test
175173
fun `outputs from projectGuardRestrictionDump are cached`() {
176174
// given

0 commit comments

Comments
 (0)