Skip to content

Commit 27b24b3

Browse files
authored
API change: Use Property<File> instead of RegularFileProperty (#19)
In order to work towards converting the implementation over to use Gradle transforms, we have to switch to the use of an API that can be satisfied by a transform output. Because this is an API change, the minor version was bumped.
1 parent 29e9f7b commit 27b24b3

File tree

9 files changed

+26
-25
lines changed

9 files changed

+26
-25
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ org.gradle.daemon=true
22
org.gradle.caching=true
33
org.gradle.parallel=true
44
org.gradle.configuration-cache=true
5-
version=1.0.0
5+
version=1.1.0

src/main/kotlin/com/ebay/plugins/metrics/develocity/GatherAggregateTask.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ open class GatherAggregateTask @Inject constructor(
7070
}.get()
7171
val inputFile = PathUtil.summarizerFile(directory, state.summarizer)
7272

73-
state.ingestFile(inputFile)
73+
state.ingestFile(inputFile.asFile)
7474
}
7575
}
7676

7777
summarizerStates.forEach { state ->
7878
val outputFile = PathUtil.summarizerFile(outputDirectoryProperty.get(), state.summarizer)
79-
state.write(outputFile)
79+
state.write(outputFile.asFile)
8080
}
8181
}
8282
}

src/main/kotlin/com/ebay/plugins/metrics/develocity/GatherHourlyTask.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ open class GatherHourlyTask @Inject constructor(
153153
val outputDirectory = outputDirectoryProperty.get()
154154
summarizerStates.forEach { state ->
155155
val outputFile = PathUtil.hourlySummarizerOutputFile(outputDirectory, state.summarizer)
156-
state.write(outputFile)
156+
state.write(outputFile.asFile)
157157
}
158158
}
159159
}

src/main/kotlin/com/ebay/plugins/metrics/develocity/MetricSummarizer.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.ebay.plugins.metrics.develocity
22

33
import com.ebay.plugins.metrics.develocity.service.model.Build
44
import com.ebay.plugins.metrics.develocity.service.model.BuildModelName
5-
import org.gradle.api.file.RegularFile
5+
import java.io.File
66

77
/**
88
* Build data summarizer which can be used to process build data into an intermediate form,
@@ -25,12 +25,12 @@ abstract class MetricSummarizer<Intermediate> {
2525
* Reads intermediate data from a file. If the file provided does not exist then the
2626
* method should return an empty intermediate data object.
2727
*/
28-
abstract fun read(file: RegularFile): Intermediate
28+
abstract fun read(file: File): Intermediate
2929

3030
/**
3131
* Writes an intermediate data object to the file specified.
3232
*/
33-
abstract fun write(intermediate: Intermediate, file: RegularFile)
33+
abstract fun write(intermediate: Intermediate, file: File)
3434

3535
/**
3636
* Processes a single build and produces an intermediate representation.

src/main/kotlin/com/ebay/plugins/metrics/develocity/MetricSummarizerState.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.ebay.plugins.metrics.develocity
22

33
import com.ebay.plugins.metrics.develocity.service.model.Build
4-
import org.gradle.api.file.RegularFile
4+
import java.io.File
55
import java.util.concurrent.atomic.AtomicReference
66

77
/**
@@ -43,7 +43,7 @@ internal class MetricSummarizerState<T>(
4343
* Update the current state by reading the intermediate data from the given file and then
4444
* reducing it with the current state.
4545
*/
46-
fun ingestFile(file: RegularFile) {
46+
fun ingestFile(file: File) {
4747
summarizer.read(file).let { intermediate ->
4848
update(intermediate)
4949
}
@@ -53,7 +53,7 @@ internal class MetricSummarizerState<T>(
5353
* Writes the current state to the file location specified. If no data has been accumulated
5454
* then the file will not be written.
5555
*/
56-
fun write(file: RegularFile) {
56+
fun write(file: File) {
5757
stateRef.get()?.let {
5858
summarizer.write(it, file)
5959
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
package com.ebay.plugins.metrics.develocity
22

33
import org.gradle.api.Task
4-
import org.gradle.api.file.RegularFileProperty
4+
import org.gradle.api.provider.Property
55
import org.gradle.api.tasks.InputFile
66
import org.gradle.api.tasks.PathSensitive
77
import org.gradle.api.tasks.PathSensitivity
8+
import java.io.File
89

910
/**
1011
* Task properties which must exist on tasks which consume the summarizer output.
1112
*/
1213
interface MetricSummarizerTask : Task {
1314
@get:InputFile
1415
@get:PathSensitive(PathSensitivity.NONE)
15-
val summarizerDataProperty: RegularFileProperty
16+
val summarizerDataProperty: Property<File>
1617
}

src/main/kotlin/com/ebay/plugins/metrics/develocity/TaskProviderExtensions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private fun TaskProvider<out MetricSummarizerTask>.configureInputs(
7171
val inputFileProvider = inputTask.flatMap { aggregateTask ->
7272
PathUtil.summarizerFile(aggregateTask.outputDirectoryProperty, summarizerId)
7373
}
74-
summarizerDataProperty.set(inputFileProvider)
74+
summarizerDataProperty.set(inputFileProvider.map { it.asFile })
7575
}
7676
}
7777
}

src/main/kotlin/com/ebay/plugins/metrics/develocity/projectcost/ProjectCostSummarizer.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import kotlinx.serialization.ExperimentalSerializationApi
88
import kotlinx.serialization.json.Json
99
import kotlinx.serialization.json.decodeFromStream
1010
import kotlinx.serialization.json.encodeToStream
11-
import org.gradle.api.file.RegularFile
1211
import org.gradle.api.provider.ListProperty
1312
import java.io.BufferedInputStream
1413
import java.io.BufferedOutputStream
14+
import java.io.File
1515
import java.util.zip.GZIPInputStream
1616
import java.util.zip.GZIPOutputStream
1717

@@ -37,9 +37,9 @@ class ProjectCostSummarizer(
3737
}
3838

3939
@OptIn(ExperimentalSerializationApi::class) // decodeFromStream
40-
override fun read(file: RegularFile): ProjectCostSummary {
41-
return if (file.asFile.exists()) {
42-
file.asFile.inputStream().use { inputStream ->
40+
override fun read(file: File): ProjectCostSummary {
41+
return if (file.exists()) {
42+
file.inputStream().use { inputStream ->
4343
BufferedInputStream(inputStream).use { buffered ->
4444
if (compressOutput) {
4545
GZIPInputStream(buffered).use { gzip ->
@@ -56,8 +56,8 @@ class ProjectCostSummarizer(
5656
}
5757

5858
@OptIn(ExperimentalSerializationApi::class) // encodeToStream
59-
override fun write(intermediate: ProjectCostSummary, file: RegularFile) {
60-
file.asFile.outputStream().use { outputStream ->
59+
override fun write(intermediate: ProjectCostSummary, file: File) {
60+
file.outputStream().use { outputStream ->
6161
BufferedOutputStream(outputStream).use { buffered ->
6262
if (compressOutput) {
6363
GZIPOutputStream(buffered).use { gzip ->

src/main/kotlin/com/ebay/plugins/metrics/develocity/userquery/UserQuerySummarizer.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import kotlinx.serialization.ExperimentalSerializationApi
77
import kotlinx.serialization.json.Json
88
import kotlinx.serialization.json.decodeFromStream
99
import kotlinx.serialization.json.encodeToStream
10-
import org.gradle.api.file.RegularFile
1110
import java.io.BufferedInputStream
1211
import java.io.BufferedOutputStream
12+
import java.io.File
1313
import java.util.zip.GZIPInputStream
1414
import java.util.zip.GZIPOutputStream
1515

@@ -30,9 +30,9 @@ class UserQuerySummarizer(
3030
}
3131

3232
@OptIn(ExperimentalSerializationApi::class) // decodeFromStream
33-
override fun read(file: RegularFile): UserQuerySummary {
34-
return if (file.asFile.exists()) {
35-
file.asFile.inputStream().use { inputStream ->
33+
override fun read(file: File): UserQuerySummary {
34+
return if (file.exists()) {
35+
file.inputStream().use { inputStream ->
3636
BufferedInputStream(inputStream).use { buffered ->
3737
if (compressOutput) {
3838
GZIPInputStream(buffered).use { gzip ->
@@ -49,8 +49,8 @@ class UserQuerySummarizer(
4949
}
5050

5151
@OptIn(ExperimentalSerializationApi::class) // encodeToStream
52-
override fun write(intermediate: UserQuerySummary, file: RegularFile) {
53-
file.asFile.outputStream().use { outputStream ->
52+
override fun write(intermediate: UserQuerySummary, file: File) {
53+
file.outputStream().use { outputStream ->
5454
BufferedOutputStream(outputStream).use { buffered ->
5555
if (compressOutput) {
5656
GZIPOutputStream(buffered).use { gzip ->

0 commit comments

Comments
 (0)