Skip to content

Commit 7cd24a1

Browse files
authored
Migrate all ListProperty usages to SetProperty (#1103)
1 parent 126938b commit 7cd24a1

File tree

9 files changed

+42
-37
lines changed

9 files changed

+42
-37
lines changed

api/shadow.api

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public class com/github/jengelman/gradle/plugins/shadow/ShadowStats {
8383
}
8484

8585
public class com/github/jengelman/gradle/plugins/shadow/impl/RelocatorRemapper : org/objectweb/asm/commons/Remapper {
86-
public fun <init> (Ljava/util/List;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)V
86+
public fun <init> (Ljava/util/Set;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)V
8787
public fun hasRelocators ()Z
8888
public fun map (Ljava/lang/String;)Ljava/lang/String;
8989
public fun mapPath (Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction$RelativeArchivePath;)Ljava/lang/String;
@@ -245,7 +245,7 @@ public final class com/github/jengelman/gradle/plugins/shadow/tasks/KnowsTask$Co
245245

246246
public class com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction : org/gradle/api/internal/file/copy/CopyAction {
247247
public static final field Companion Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction$Companion;
248-
public fun <init> (Ljava/io/File;Lcom/github/jengelman/gradle/plugins/shadow/internal/ZipCompressor;Lorg/gradle/api/internal/DocumentationRegistry;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lorg/gradle/api/tasks/util/PatternSet;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;ZZ)V
248+
public fun <init> (Ljava/io/File;Lcom/github/jengelman/gradle/plugins/shadow/internal/ZipCompressor;Lorg/gradle/api/internal/DocumentationRegistry;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lorg/gradle/api/tasks/util/PatternSet;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;ZZ)V
249249
public fun execute (Lorg/gradle/api/internal/file/copy/CopyActionProcessingStream;)Lorg/gradle/api/tasks/WorkResult;
250250
}
251251

@@ -302,7 +302,7 @@ public abstract class com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar
302302
public fun dependencies (Lorg/gradle/api/Action;)Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar;
303303
public synthetic fun dependencies (Lorg/gradle/api/Action;)Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
304304
public fun getApiJars ()Lorg/gradle/api/file/ConfigurableFileCollection;
305-
public fun getConfigurations ()Lorg/gradle/api/provider/ListProperty;
305+
public fun getConfigurations ()Lorg/gradle/api/provider/SetProperty;
306306
public fun getDependencyFilter ()Lorg/gradle/api/provider/Property;
307307
public fun getEnableRelocation ()Lorg/gradle/api/provider/Property;
308308
public fun getIncludedDependencies ()Lorg/gradle/api/file/ConfigurableFileCollection;
@@ -311,12 +311,12 @@ public abstract class com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar
311311
public synthetic fun getManifest ()Lorg/gradle/api/java/archives/Manifest;
312312
public fun getMinimizeJar ()Lorg/gradle/api/provider/Property;
313313
public fun getRelocationPrefix ()Lorg/gradle/api/provider/Property;
314-
public fun getRelocators ()Lorg/gradle/api/provider/ListProperty;
314+
public fun getRelocators ()Lorg/gradle/api/provider/SetProperty;
315315
protected fun getRootPatternSet ()Lorg/gradle/api/tasks/util/PatternSet;
316316
public fun getSourceSetsClassesDirs ()Lorg/gradle/api/file/ConfigurableFileCollection;
317317
public fun getStats ()Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;
318318
public fun getToMinimize ()Lorg/gradle/api/file/ConfigurableFileCollection;
319-
public fun getTransformers ()Lorg/gradle/api/provider/ListProperty;
319+
public fun getTransformers ()Lorg/gradle/api/provider/SetProperty;
320320
public fun mergeGroovyExtensionModules ()Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar;
321321
public synthetic fun mergeGroovyExtensionModules ()Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
322322
public fun mergeServiceFiles ()Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar;
@@ -465,7 +465,7 @@ public class com/github/jengelman/gradle/plugins/shadow/transformers/ManifestApp
465465
public fun <init> (Lorg/gradle/api/model/ObjectFactory;)V
466466
public fun append (Ljava/lang/String;Ljava/lang/Comparable;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/ManifestAppenderTransformer;
467467
public fun canTransformResource (Lorg/gradle/api/file/FileTreeElement;)Z
468-
public fun getAttributes ()Lorg/gradle/api/provider/ListProperty;
468+
public fun getAttributes ()Lorg/gradle/api/provider/SetProperty;
469469
public final fun getObjectFactory ()Lorg/gradle/api/model/ObjectFactory;
470470
public fun hasTransformedResource ()Z
471471
public fun modifyOutputStream (Lorg/apache/tools/zip/ZipOutputStream;Z)V
@@ -501,7 +501,7 @@ public class com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesF
501501
public fun getMergeSeparator ()Lorg/gradle/api/provider/Property;
502502
public fun getMergeStrategy ()Lorg/gradle/api/provider/Property;
503503
public final fun getObjectFactory ()Lorg/gradle/api/model/ObjectFactory;
504-
public fun getPaths ()Lorg/gradle/api/provider/ListProperty;
504+
public fun getPaths ()Lorg/gradle/api/provider/SetProperty;
505505
public fun hasTransformedResource ()Z
506506
public fun modifyOutputStream (Lorg/apache/tools/zip/ZipOutputStream;Z)V
507507
public fun transform (Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;)V
@@ -574,21 +574,21 @@ public final class com/github/jengelman/gradle/plugins/shadow/transformers/Trans
574574
public final class com/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext {
575575
public static final field Companion Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Companion;
576576
public fun <init> (Ljava/lang/String;Ljava/io/InputStream;)V
577-
public fun <init> (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/List;)V
578-
public fun <init> (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/List;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)V
579-
public synthetic fun <init> (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/List;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
577+
public fun <init> (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/Set;)V
578+
public fun <init> (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/Set;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)V
579+
public synthetic fun <init> (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/Set;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
580580
public static final fun builder ()Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Builder;
581581
public final fun component1 ()Ljava/lang/String;
582582
public final fun component2 ()Ljava/io/InputStream;
583-
public final fun component3 ()Ljava/util/List;
583+
public final fun component3 ()Ljava/util/Set;
584584
public final fun component4 ()Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;
585-
public final fun copy (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/List;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;
586-
public static synthetic fun copy$default (Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;Ljava/lang/String;Ljava/io/InputStream;Ljava/util/List;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;ILjava/lang/Object;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;
585+
public final fun copy (Ljava/lang/String;Ljava/io/InputStream;Ljava/util/Set;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;
586+
public static synthetic fun copy$default (Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;Ljava/lang/String;Ljava/io/InputStream;Ljava/util/Set;Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;ILjava/lang/Object;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;
587587
public fun equals (Ljava/lang/Object;)Z
588588
public static final fun getEntryTimestamp (ZJ)J
589589
public final fun getInputStream ()Ljava/io/InputStream;
590590
public final fun getPath ()Ljava/lang/String;
591-
public final fun getRelocators ()Ljava/util/List;
591+
public final fun getRelocators ()Ljava/util/Set;
592592
public final fun getStats ()Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;
593593
public fun hashCode ()I
594594
public fun toString ()Ljava/lang/String;
@@ -599,7 +599,7 @@ public final class com/github/jengelman/gradle/plugins/shadow/transformers/Trans
599599
public final fun build ()Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext;
600600
public final fun inputStream (Ljava/io/InputStream;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Builder;
601601
public final fun path (Ljava/lang/String;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Builder;
602-
public final fun relocators (Ljava/util/List;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Builder;
602+
public final fun relocators (Ljava/util/Set;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Builder;
603603
public final fun stats (Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;)Lcom/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext$Builder;
604604
}
605605

src/docs/changes/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
- Sync `SimpleRelocator` changes from maven-shade-plugin. ([#1076](https://github.com/GradleUp/shadow/pull/1076))
99

10+
**Changed**
11+
12+
- **BREAKING CHANGE:** Migrate all `ListProperty` usages to `SetProperty`. ([#1103](https://github.com/GradleUp/shadow/pull/1103))
13+
Some public `List` parameters are also changed to `Set`.
14+
1015

1116
## [v9.0.0-beta4] (2024-12-06)
1217

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/impl/RelocatorRemapper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import org.objectweb.asm.commons.Remapper
1515
* @author John Engelman
1616
*/
1717
public open class RelocatorRemapper(
18-
private val relocators: List<Relocator>,
18+
private val relocators: Set<Relocator>,
1919
private val stats: ShadowStats,
2020
) : Remapper() {
2121
private val classPattern: Pattern = Pattern.compile("(\\[*)?L(.+)")

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowCopyAction.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ public open class ShadowCopyAction internal constructor(
4444
private val compressor: ZipCompressor,
4545
private val documentationRegistry: DocumentationRegistry,
4646
private val encoding: String?,
47-
private val transformers: List<Transformer>,
48-
private val relocators: List<Relocator>,
47+
private val transformers: Set<Transformer>,
48+
private val relocators: Set<Relocator>,
4949
private val patternSet: PatternSet,
5050
private val stats: ShadowStats,
5151
private val preserveFileTimestamps: Boolean,
@@ -58,8 +58,8 @@ public open class ShadowCopyAction internal constructor(
5858
compressor: ZipCompressor,
5959
documentationRegistry: DocumentationRegistry,
6060
encoding: String?,
61-
transformers: List<Transformer>,
62-
relocators: List<Relocator>,
61+
transformers: Set<Transformer>,
62+
relocators: Set<Relocator>,
6363
patternSet: PatternSet,
6464
stats: ShadowStats,
6565
preserveFileTimestamps: Boolean,
@@ -166,8 +166,8 @@ public open class ShadowCopyAction internal constructor(
166166
private inner class StreamAction(
167167
private val zipOutStr: ZipOutputStream,
168168
encoding: String?,
169-
private val transformers: List<Transformer>,
170-
private val relocators: List<Relocator>,
169+
private val transformers: Set<Transformer>,
170+
private val relocators: Set<Relocator>,
171171
private val patternSet: PatternSet,
172172
private val unused: Set<String>,
173173
private val stats: ShadowStats,

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ import org.gradle.api.internal.DocumentationRegistry
3131
import org.gradle.api.internal.file.FileResolver
3232
import org.gradle.api.internal.file.copy.CopyAction
3333
import org.gradle.api.internal.file.copy.DefaultCopySpec
34-
import org.gradle.api.provider.ListProperty
3534
import org.gradle.api.provider.Property
35+
import org.gradle.api.provider.SetProperty
3636
import org.gradle.api.tasks.CacheableTask
3737
import org.gradle.api.tasks.Classpath
3838
import org.gradle.api.tasks.Input
@@ -113,14 +113,14 @@ public abstract class ShadowJar :
113113
}
114114

115115
@get:Nested
116-
public open val transformers: ListProperty<Transformer> = objectFactory.listProperty(Transformer::class.java)
116+
public open val transformers: SetProperty<Transformer> = objectFactory.setProperty(Transformer::class.java)
117117

118118
@get:Nested
119-
public open val relocators: ListProperty<Relocator> = objectFactory.listProperty(Relocator::class.java)
119+
public open val relocators: SetProperty<Relocator> = objectFactory.setProperty(Relocator::class.java)
120120

121121
@get:Classpath
122122
@get:Optional
123-
public open val configurations: ListProperty<Configuration> = objectFactory.listProperty(Configuration::class.java)
123+
public open val configurations: SetProperty<Configuration> = objectFactory.setProperty(Configuration::class.java)
124124

125125
@get:Internal
126126
public open val dependencyFilter: Property<DependencyFilter> =
@@ -294,8 +294,8 @@ public abstract class ShadowJar :
294294
if (!enableRelocation.get()) return emptyList()
295295

296296
val prefix = relocationPrefix.get()
297-
// Must cast configurations to List<FileCollection> to fix type mismatch in runtime.
298-
return (configurations.get() as List<FileCollection>).flatMap { configuration ->
297+
// Must cast configurations to Set<FileCollection> to fix type mismatch in runtime.
298+
return (configurations.get() as Set<FileCollection>).flatMap { configuration ->
299299
configuration.files.flatMap { file ->
300300
JarFile(file).use { jarFile ->
301301
jarFile.entries().toList()

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ManifestAppenderTransformer.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.apache.tools.zip.ZipEntry
88
import org.apache.tools.zip.ZipOutputStream
99
import org.gradle.api.file.FileTreeElement
1010
import org.gradle.api.model.ObjectFactory
11-
import org.gradle.api.provider.ListProperty
11+
import org.gradle.api.provider.SetProperty
1212
import org.gradle.api.tasks.Input
1313
import org.slf4j.LoggerFactory
1414

@@ -27,8 +27,8 @@ public open class ManifestAppenderTransformer @Inject constructor(
2727

2828
@Suppress("UNCHECKED_CAST")
2929
@get:Input
30-
public open val attributes: ListProperty<Pair<String, Comparable<*>>> =
31-
objectFactory.listProperty(Pair::class.java) as ListProperty<Pair<String, Comparable<*>>>
30+
public open val attributes: SetProperty<Pair<String, Comparable<*>>> =
31+
objectFactory.setProperty(Pair::class.java) as SetProperty<Pair<String, Comparable<*>>>
3232

3333
override fun canTransformResource(element: FileTreeElement): Boolean {
3434
return MANIFEST_NAME.equals(element.relativePath.pathString, ignoreCase = true)

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import org.apache.tools.zip.ZipEntry
1414
import org.apache.tools.zip.ZipOutputStream
1515
import org.gradle.api.file.FileTreeElement
1616
import org.gradle.api.model.ObjectFactory
17-
import org.gradle.api.provider.ListProperty
1817
import org.gradle.api.provider.MapProperty
1918
import org.gradle.api.provider.Property
19+
import org.gradle.api.provider.SetProperty
2020
import org.gradle.api.tasks.Input
2121
import org.gradle.api.tasks.Internal
2222

@@ -107,7 +107,7 @@ public open class PropertiesFileTransformer @Inject constructor(
107107
internal val propertiesEntries = mutableMapOf<String, CleanProperties>()
108108

109109
@get:Input
110-
public open val paths: ListProperty<String> = objectFactory.listProperty(String::class.java)
110+
public open val paths: SetProperty<String> = objectFactory.setProperty(String::class.java)
111111

112112
@Suppress("UNCHECKED_CAST")
113113
@get:Input

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformerContext.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ import java.io.InputStream
88
public data class TransformerContext @JvmOverloads constructor(
99
val path: String,
1010
val inputStream: InputStream,
11-
val relocators: List<Relocator> = emptyList(),
11+
val relocators: Set<Relocator> = emptySet(),
1212
val stats: ShadowStats = ShadowStats(),
1313
) {
1414
public class Builder {
1515
private var path = ""
1616
private var inputStream: InputStream? = null
17-
private var relocators = emptyList<Relocator>()
17+
private var relocators = emptySet<Relocator>()
1818
private var stats = ShadowStats()
1919

2020
public fun path(path: String): Builder = apply { this.path = path }
2121
public fun inputStream(inputStream: InputStream): Builder = apply { this.inputStream = inputStream }
22-
public fun relocators(relocators: List<Relocator>): Builder = apply { this.relocators = relocators }
22+
public fun relocators(relocators: Set<Relocator>): Builder = apply { this.relocators = relocators }
2323
public fun stats(stats: ShadowStats): Builder = apply { this.stats = stats }
2424
public fun build(): TransformerContext = TransformerContext(
2525
path = path,

src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformerTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class Log4j2PluginsCacheFileTransformerTest : BaseTransformerTest<Log4j2PluginsC
4747
}
4848

4949
private fun context(vararg relocator: SimpleRelocator): TransformerContext {
50-
return TransformerContext(PLUGIN_CACHE_FILE, requireResourceAsStream(PLUGIN_CACHE_FILE), relocator.toList())
50+
return TransformerContext(PLUGIN_CACHE_FILE, requireResourceAsStream(PLUGIN_CACHE_FILE), relocator.toSet())
5151
}
5252

5353
private companion object {

0 commit comments

Comments
 (0)