@@ -10,9 +10,11 @@ import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionMo
10
10
import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.MERGED_MODULE_VERSION
11
11
import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.PATH_GROOVY_EXTENSION_MODULE_DESCRIPTOR
12
12
import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.PATH_LEGACY_GROOVY_EXTENSION_MODULE_DESCRIPTOR
13
+ import com.github.jengelman.gradle.plugins.shadow.util.JarPath
13
14
import com.github.jengelman.gradle.plugins.shadow.util.getContent
14
15
import java.nio.file.Path
15
16
import kotlin.io.path.appendText
17
+ import org.junit.jupiter.api.Test
16
18
import org.junit.jupiter.params.ParameterizedTest
17
19
import org.junit.jupiter.params.provider.Arguments
18
20
import org.junit.jupiter.params.provider.MethodSource
@@ -63,6 +65,35 @@ class GroovyExtensionModuleTransformerTest : BaseTransformerTest() {
63
65
commonAssertions()
64
66
}
65
67
68
+ @Test
69
+ fun groovyExtensionModuleTransformerWithRelocation () {
70
+ projectScript.appendText(
71
+ """
72
+ dependencies {
73
+ ${implementationFiles(buildJarFoo(), buildJarBar())}
74
+ }
75
+ $shadowJarTask {
76
+ relocate('com.acme', 'com.example.shaded.acme')
77
+ mergeGroovyExtensionModules()
78
+ }
79
+ """ .trimIndent(),
80
+ )
81
+
82
+ run (shadowJarPath)
83
+
84
+ val properties = outputShadowedJar.extensionModuleProperties
85
+
86
+ assertThat(properties.getProperty(KEY_MODULE_NAME )).isEqualTo(MERGED_MODULE_NAME )
87
+ assertThat(properties.getProperty(KEY_MODULE_VERSION )).isEqualTo(MERGED_MODULE_VERSION )
88
+ assertThat(properties.getProperty(KEY_EXTENSION_CLASSES ))
89
+ .isEqualTo(
90
+ " com.example.shaded.acme.foo.FooExtension,com.example.shaded.acme.foo.BarExtension," +
91
+ " com.example.shaded.acme.bar.SomeExtension,com.example.shaded.acme.bar.AnotherExtension" ,
92
+ )
93
+ assertThat(properties.getProperty(KEY_STATIC_EXTENSION_CLASSES ))
94
+ .isEqualTo(" com.example.shaded.acme.foo.FooStaticExtension,com.example.shaded.acme.bar.SomeStaticExtension" )
95
+ }
96
+
66
97
private fun buildJarFoo (
67
98
entry : String = PATH_GROOVY_EXTENSION_MODULE_DESCRIPTOR ,
68
99
): Path = buildJar(" foo.jar" ) {
@@ -92,7 +123,7 @@ class GroovyExtensionModuleTransformerTest : BaseTransformerTest() {
92
123
}
93
124
94
125
private fun commonAssertions () {
95
- val properties = outputShadowedJar.use { it.getContent( PATH_GROOVY_EXTENSION_MODULE_DESCRIPTOR ) }.toProperties()
126
+ val properties = outputShadowedJar.extensionModuleProperties
96
127
97
128
assertThat(properties.getProperty(KEY_MODULE_NAME )).isEqualTo(MERGED_MODULE_NAME )
98
129
assertThat(properties.getProperty(KEY_MODULE_VERSION )).isEqualTo(MERGED_MODULE_VERSION )
@@ -108,6 +139,10 @@ class GroovyExtensionModuleTransformerTest : BaseTransformerTest() {
108
139
const val STATIC_EXTENSION_CLASSES_FOO = " com.acme.foo.FooStaticExtension"
109
140
const val STATIC_EXTENSION_CLASSES_BAR = " com.acme.bar.SomeStaticExtension"
110
141
142
+ val JarPath .extensionModuleProperties get() = use {
143
+ it.getContent(PATH_GROOVY_EXTENSION_MODULE_DESCRIPTOR ).toProperties()
144
+ }
145
+
111
146
@JvmStatic
112
147
fun resourcePathProvider () = listOf (
113
148
Arguments .of(PATH_LEGACY_GROOVY_EXTENSION_MODULE_DESCRIPTOR , PATH_LEGACY_GROOVY_EXTENSION_MODULE_DESCRIPTOR ),
0 commit comments