Skip to content

Commit b8b320b

Browse files
authored
Rename Transformer to ResourceTransformer (#1288)
Aims to better align with the name of [org.apache.maven.plugins.shade.resource.ResourceTransformer.java](https://github.com/apache/maven-shade-plugin/blob/master/src/main/java/org/apache/maven/plugins/shade/resource/ResourceTransformer.java) and to distinguish itself from [org.gradle.api.Transformer.java](https://docs.gradle.org/current/javadoc/org/gradle/api/Transformer.html).
1 parent d9ce6a1 commit b8b320b

24 files changed

+92
-89
lines changed

api/shadow.api

+38-38
Large diffs are not rendered by default.

src/docs/changes/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
- Compat Kotlin Multiplatform plugin. ([#1280](https://github.com/GradleUp/shadow/pull/1280))
99
You still need to manually configure `manifest.attributes` (e.g. `Main-Class` attr) in the `shadowJar` task if necessary.
1010

11+
**Changed**
12+
13+
- **BREAKING CHANGE:** Rename `Transformer` to `ResourceTransformer`. ([#1288](https://github.com/GradleUp/shadow/pull/1288))
14+
Aims to better align with the name of [org.apache.maven.plugins.shade.resource.ResourceTransformer.java](https://github.com/apache/maven-shade-plugin/blob/master/src/main/java/org/apache/maven/plugins/shade/resource/ResourceTransformer.java) and to distinguish itself from [org.gradle.api.Transformer.java](https://docs.gradle.org/current/javadoc/org/gradle/api/Transformer.html).
15+
1116
**Fixed**
1217

1318
- Fix the last modified time of shadowed directories. ([#1277](https://github.com/GradleUp/shadow/pull/1277))

src/docs/configuration/merging/README.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ This allows a [`Transformer`](https://gradleup.com/shadow/api/shadow/com.github.
99
determine if it should process a particular entry and apply any modifications before writing the stream to the output.
1010

1111
```groovy
12-
// Adding a Transformer
13-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
12+
// Adding a ResourceTransformer
13+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
1414
import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext
1515
import javax.annotation.Nonnull
1616
import org.apache.tools.zip.ZipOutputStream
1717
import org.gradle.api.file.FileTreeElement
1818
19-
class MyTransformer implements Transformer {
19+
class MyTransformer implements ResourceTransformer {
2020
@Override
2121
boolean canTransformResource(@Nonnull FileTreeElement element) { return true }
2222
@@ -38,14 +38,14 @@ tasks.named('shadowJar', com.github.jengelman.gradle.plugins.shadow.tasks.Shadow
3838
Additionally, a `Transformer` can accept a `Closure` to configure the provided `Transformer`.
3939

4040
```groovy
41-
// Configuring a Transformer
42-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
41+
// Configuring a ResourceTransformer
42+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
4343
import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext
4444
import javax.annotation.Nonnull
4545
import org.apache.tools.zip.ZipOutputStream
4646
import org.gradle.api.file.FileTreeElement
4747
48-
class MyTransformer implements Transformer {
48+
class MyTransformer implements ResourceTransformer {
4949
boolean enabled
5050
5151
@Override
@@ -71,14 +71,14 @@ tasks.named('shadowJar', com.github.jengelman.gradle.plugins.shadow.tasks.Shadow
7171
An instantiated instance of a `Transformer` can also be provided.
7272

7373
```groovy
74-
// Adding a Transformer Instance
75-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
74+
// Adding a ResourceTransformer Instance
75+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
7676
import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext
7777
import javax.annotation.Nonnull
7878
import org.apache.tools.zip.ZipOutputStream
7979
import org.gradle.api.file.FileTreeElement
8080
81-
class MyTransformer implements Transformer {
81+
class MyTransformer implements ResourceTransformer {
8282
final boolean enabled
8383
8484
MyTransformer(boolean enabled) {

src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/BasePluginTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Compan
1010
import com.github.jengelman.gradle.plugins.shadow.ShadowJavaPlugin.Companion.SHADOW_JAR_TASK_NAME
1111
import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsPath
1212
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
13-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
13+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
1414
import com.github.jengelman.gradle.plugins.shadow.util.AppendableMavenRepository
1515
import com.github.jengelman.gradle.plugins.shadow.util.JarPath
1616
import java.io.Closeable
@@ -390,7 +390,7 @@ abstract class BasePluginTest {
390390
return paths.joinToString(System.lineSeparator()) { "implementation files('${it.toUri().toURL().path}')" }
391391
}
392392

393-
inline fun <reified T : Transformer> transform(
393+
inline fun <reified T : ResourceTransformer> transform(
394394
dependenciesBlock: String = "",
395395
transformerBlock: String = "",
396396
): String {

src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/caching/TransformerCachingTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCach
1313
import com.github.jengelman.gradle.plugins.shadow.transformers.ManifestAppenderTransformer
1414
import com.github.jengelman.gradle.plugins.shadow.transformers.ManifestResourceTransformer
1515
import com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer
16+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
1617
import com.github.jengelman.gradle.plugins.shadow.transformers.ServiceFileTransformer
17-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
1818
import com.github.jengelman.gradle.plugins.shadow.transformers.XmlAppendingTransformer
1919
import com.github.jengelman.gradle.plugins.shadow.util.containsEntries
2020
import com.github.jengelman.gradle.plugins.shadow.util.getContent
@@ -147,7 +147,7 @@ class TransformerCachingTest : BaseCachingTest() {
147147
"""
148148
$shadowJar {
149149
// Use Transformer.Companion (no-op) to mock a custom transformer here, it's not cacheable.
150-
transform(${Transformer.Companion::class.java.name})
150+
transform(${ResourceTransformer.Companion::class.java.name})
151151
}
152152
""".trimIndent(),
153153
)

src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class TransformersTest : BaseTransformerTest() {
113113
}
114114
$shadowJar {
115115
// Use Transformer.Companion (no-op) to mock a custom transformer here.
116-
transform(${Transformer.Companion::class.java.name})
116+
transform(${ResourceTransformer.Companion::class.java.name})
117117
}
118118
""".trimIndent(),
119119
)

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.github.jengelman.gradle.plugins.shadow.internal.RelocatorRemapper
44
import com.github.jengelman.gradle.plugins.shadow.internal.cast
55
import com.github.jengelman.gradle.plugins.shadow.internal.zipEntry
66
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
7-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
7+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
88
import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext
99
import java.io.File
1010
import java.util.GregorianCalendar
@@ -32,7 +32,7 @@ import org.objectweb.asm.commons.ClassRemapper
3232
public open class ShadowCopyAction(
3333
private val zipFile: File,
3434
private val zosProvider: (File) -> ZipOutputStream,
35-
private val transformers: Set<Transformer>,
35+
private val transformers: Set<ResourceTransformer>,
3636
private val relocators: Set<Relocator>,
3737
private val unusedClasses: Set<String>,
3838
private val preserveFileTimestamps: Boolean,

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

+7-7
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import com.github.jengelman.gradle.plugins.shadow.relocation.SimpleRelocator
1515
import com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer
1616
import com.github.jengelman.gradle.plugins.shadow.transformers.CacheableTransformer
1717
import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer
18+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
19+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer.Companion.create
1820
import com.github.jengelman.gradle.plugins.shadow.transformers.ServiceFileTransformer
19-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
20-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer.Companion.create
2121
import java.io.File
2222
import java.io.IOException
2323
import java.util.jar.JarFile
@@ -102,7 +102,7 @@ public abstract class ShadowJar :
102102
}
103103

104104
@get:Nested
105-
public open val transformers: SetProperty<Transformer> = objectFactory.setProperty()
105+
public open val transformers: SetProperty<ResourceTransformer> = objectFactory.setProperty()
106106

107107
@get:Nested
108108
public open val relocators: SetProperty<Relocator> = objectFactory.setProperty()
@@ -158,15 +158,15 @@ public abstract class ShadowJar :
158158
action?.execute(dependencyFilter.get())
159159
}
160160

161-
override fun transform(clazz: Class<Transformer>): ShadowJar {
161+
override fun transform(clazz: Class<ResourceTransformer>): ShadowJar {
162162
return transform(clazz, null)
163163
}
164164

165-
override fun <T : Transformer> transform(clazz: Class<T>, action: Action<T>?): ShadowJar = apply {
165+
override fun <T : ResourceTransformer> transform(clazz: Class<T>, action: Action<T>?): ShadowJar = apply {
166166
addTransform(clazz.create(objectFactory), action)
167167
}
168168

169-
override fun transform(transformer: Transformer): ShadowJar = apply {
169+
override fun transform(transformer: ResourceTransformer): ShadowJar = apply {
170170
addTransform(transformer, null)
171171
}
172172

@@ -292,7 +292,7 @@ public abstract class ShadowJar :
292292
relocators.add(relocator)
293293
}
294294

295-
private fun <T : Transformer> addTransform(transformer: T, action: Action<T>?) {
295+
private fun <T : ResourceTransformer> addTransform(transformer: T, action: Action<T>?) {
296296
action?.execute(transformer)
297297
transformers.add(transformer)
298298
}

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

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ package com.github.jengelman.gradle.plugins.shadow.tasks
22

33
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
44
import com.github.jengelman.gradle.plugins.shadow.relocation.SimpleRelocator
5-
import com.github.jengelman.gradle.plugins.shadow.tasks.DependencyFilter
5+
import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer
66
import com.github.jengelman.gradle.plugins.shadow.transformers.ServiceFileTransformer
7-
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
87
import java.lang.reflect.InvocationTargetException
98
import org.gradle.api.Action
109
import org.gradle.api.file.CopySpec
@@ -22,17 +21,17 @@ public interface ShadowSpec : CopySpec {
2221
NoSuchMethodException::class,
2322
InvocationTargetException::class,
2423
)
25-
public fun transform(clazz: Class<Transformer>): ShadowSpec
24+
public fun transform(clazz: Class<ResourceTransformer>): ShadowSpec
2625

2726
@Throws(
2827
InstantiationException::class,
2928
IllegalAccessException::class,
3029
NoSuchMethodException::class,
3130
InvocationTargetException::class,
3231
)
33-
public fun <T : Transformer> transform(clazz: Class<T>, action: Action<T>?): ShadowSpec
32+
public fun <T : ResourceTransformer> transform(clazz: Class<T>, action: Action<T>?): ShadowSpec
3433

35-
public fun transform(transformer: Transformer): ShadowSpec
34+
public fun transform(transformer: ResourceTransformer): ShadowSpec
3635

3736
public fun mergeServiceFiles(): ShadowSpec
3837

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.gradle.api.file.FileTreeElement
1010
* @author John Engelman
1111
*/
1212
@CacheableTransformer
13-
public open class ApacheLicenseResourceTransformer : Transformer by Transformer.Companion {
13+
public open class ApacheLicenseResourceTransformer : ResourceTransformer by ResourceTransformer.Companion {
1414
override fun canTransformResource(element: FileTreeElement): Boolean {
1515
val path = element.path
1616
return LICENSE_PATH.equals(path, ignoreCase = true) ||

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import org.gradle.api.tasks.Optional
2626
@CacheableTransformer
2727
public open class ApacheNoticeResourceTransformer @Inject constructor(
2828
final override val objectFactory: ObjectFactory,
29-
) : Transformer {
29+
) : ResourceTransformer {
3030
private val entries = mutableSetOf<String>()
3131
private val organizationEntries = mutableMapOf<String, MutableSet<String>>()
3232
private inline val charset get() = Charset.forName(charsetName.get())

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import org.gradle.api.tasks.Optional
2222
@Suppress("ktlint:standard:backing-property-naming")
2323
public open class AppendingTransformer @Inject constructor(
2424
final override val objectFactory: ObjectFactory,
25-
) : Transformer {
25+
) : ResourceTransformer {
2626
/**
2727
* Defer initialization, see [issue 763](https://github.com/GradleUp/shadow/issues/763).
2828
*/

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import org.gradle.api.tasks.Internal
2222
* @author John Engelman
2323
*/
2424
@CacheableTransformer
25-
public open class ComponentsXmlResourceTransformer : Transformer {
25+
public open class ComponentsXmlResourceTransformer : ResourceTransformer {
2626
private val components = mutableMapOf<String, Xpp3Dom>()
2727

2828
override fun canTransformResource(element: FileTreeElement): Boolean {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import org.gradle.api.tasks.Optional
1818
@CacheableTransformer
1919
public open class DontIncludeResourceTransformer @Inject constructor(
2020
final override val objectFactory: ObjectFactory,
21-
) : Transformer by Transformer.Companion {
21+
) : ResourceTransformer by ResourceTransformer.Companion {
2222
@get:Optional
2323
@get:Input
2424
public open val resource: Property<String> = objectFactory.property()

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import org.gradle.api.file.FileTreeElement
2525
* Related to [org.apache.maven.plugins.shade.resource.GroovyResourceTransformer.java](https://github.com/apache/maven-shade-plugin/blob/master/src/main/java/org/apache/maven/plugins/shade/resource/GroovyResourceTransformer.java).
2626
*/
2727
@CacheableTransformer
28-
public open class GroovyExtensionModuleTransformer : Transformer {
28+
public open class GroovyExtensionModuleTransformer : ResourceTransformer {
2929
private val module = Properties()
3030

3131
/**

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import org.gradle.api.tasks.PathSensitivity
2222
@CacheableTransformer
2323
public open class IncludeResourceTransformer @Inject constructor(
2424
final override val objectFactory: ObjectFactory,
25-
) : Transformer by Transformer.Companion {
25+
) : ResourceTransformer by ResourceTransformer.Companion {
2626
@get:InputFile
2727
@get:PathSensitive(PathSensitivity.NONE)
2828
public open val file: RegularFileProperty = objectFactory.fileProperty()

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import org.gradle.api.file.FileTreeElement
2323
* @author John Engelman
2424
*/
2525
@CacheableTransformer
26-
public open class Log4j2PluginsCacheFileTransformer : Transformer {
26+
public open class Log4j2PluginsCacheFileTransformer : ResourceTransformer {
2727
/**
2828
* Log4j config files to share across the transformation stages.
2929
*/

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import org.gradle.api.tasks.Input
2424
@CacheableTransformer
2525
public open class ManifestAppenderTransformer @Inject constructor(
2626
final override val objectFactory: ObjectFactory,
27-
) : Transformer {
27+
) : ResourceTransformer {
2828
private var manifestContents = ByteArray(0)
2929

3030
@get:Input

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import org.gradle.api.tasks.Optional
3131
@CacheableTransformer
3232
public open class ManifestResourceTransformer @Inject constructor(
3333
final override val objectFactory: ObjectFactory,
34-
) : Transformer {
34+
) : ResourceTransformer {
3535
private var manifestDiscovered = false
3636
private var manifest: Manifest? = null
3737

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.github.jengelman.gradle.plugins.shadow.internal.mapProperty
66
import com.github.jengelman.gradle.plugins.shadow.internal.property
77
import com.github.jengelman.gradle.plugins.shadow.internal.setProperty
88
import com.github.jengelman.gradle.plugins.shadow.internal.zipEntry
9-
import com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer.MergeStrategy
109
import java.io.InputStream
1110
import java.nio.charset.Charset
1211
import java.util.Properties
@@ -101,7 +100,7 @@ import org.gradle.api.tasks.Internal
101100
@CacheableTransformer
102101
public open class PropertiesFileTransformer @Inject constructor(
103102
final override val objectFactory: ObjectFactory,
104-
) : Transformer {
103+
) : ResourceTransformer {
105104
private inline val charset get() = Charset.forName(charsetName.get())
106105

107106
@get:Internal

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import org.gradle.api.tasks.Internal
1515
* @author John Engelman
1616
*/
1717
@JvmDefaultWithCompatibility
18-
public interface Transformer {
18+
public interface ResourceTransformer {
1919
public fun canTransformResource(element: FileTreeElement): Boolean
2020

2121
@Throws(IOException::class)
@@ -36,11 +36,11 @@ public interface Transformer {
3636
get() = throw NotImplementedError("You have to make sure this has been implemented or injected.")
3737

3838
/**
39-
* This also implements [Transformer] but no-op, which means it could be used by Kotlin delegations.
39+
* This also implements [ResourceTransformer] but no-op, which means it could be used by Kotlin delegations.
4040
*/
41-
public companion object : Transformer {
41+
public companion object : ResourceTransformer {
4242
@JvmStatic
43-
public fun <T : Transformer> Class<T>.create(objectFactory: ObjectFactory): T {
43+
public fun <T : ResourceTransformer> Class<T>.create(objectFactory: ObjectFactory): T {
4444
// If the constructor takes a single ObjectFactory, inject it in.
4545
val constructor = constructors.find {
4646
it.parameterTypes.singleOrNull() == ObjectFactory::class.java
@@ -60,7 +60,7 @@ public interface Transformer {
6060
}
6161

6262
/**
63-
* Marks that a given instance of [Transformer] is compatible with the Gradle build cache.
63+
* Marks that a given instance of [ResourceTransformer] is compatible with the Gradle build cache.
6464
* In other words, it has its appropriate inputs annotated so that Gradle can consider them when
6565
* determining the cache key.
6666
*

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public open class ServiceFileTransformer(
2828
private val patternSet: PatternSet = PatternSet()
2929
.include(SERVICES_PATTERN)
3030
.exclude(PATH_LEGACY_GROOVY_EXTENSION_MODULE_DESCRIPTOR),
31-
) : Transformer,
31+
) : ResourceTransformer,
3232
PatternFilterable by patternSet {
3333
@get:Internal
3434
internal val serviceEntries = mutableMapOf<String, MutableSet<String>>()

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import org.xml.sax.InputSource
3030
@CacheableTransformer
3131
public open class XmlAppendingTransformer @Inject constructor(
3232
final override val objectFactory: ObjectFactory,
33-
) : Transformer {
33+
) : ResourceTransformer {
3434
private var doc: Document? = null
3535

3636
@get:Input

0 commit comments

Comments
 (0)