File tree 2 files changed +13
-1
lines changed
src/main/groovy/com/github/jengelman/gradle/plugins/shadow
2 files changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,9 @@ import com.github.jengelman.gradle.plugins.shadow.relocation.RelocatePathContext
25
25
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
26
26
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowCopyAction.RelativeArchivePath
27
27
import org.objectweb.asm.commons.Remapper
28
+ import scala.Function1
29
+ import scala.Option
30
+ import scala.jdk.FunctionWrappers
28
31
29
32
import java.util.regex.Matcher
30
33
import java.util.regex.Pattern
@@ -40,10 +43,18 @@ class RelocatorRemapper extends Remapper {
40
43
41
44
List<Relocator > relocators
42
45
ShadowStats stats
46
+ Function1<String , Option<String > > scalaRenamer
43
47
44
48
RelocatorRemapper (List<Relocator > relocators , ShadowStats stats ) {
45
49
this . relocators = relocators
46
50
this . stats = stats
51
+ this . scalaRenamer =
52
+ new FunctionWrappers.FromJavaFunction (
53
+ (String string) -> {
54
+ Optional<Relocator > maybe = relocators. stream(). filter(x -> x. canRelocateClass(string)). findAny()
55
+ scala.Option . apply(maybe. map(it. relocateClass(new RelocateClassContext (string, stats))). orElse(null ))
56
+ }
57
+ )
47
58
}
48
59
49
60
boolean hasRelocators () {
Original file line number Diff line number Diff line change 1
1
package com.github.jengelman.gradle.plugins.shadow.tasks
2
2
3
+ import com.eed3si9n.jarjarabrams.scalasig.ScalaSigClassVisitor
3
4
import com.github.jengelman.gradle.plugins.shadow.ShadowStats
4
5
import com.github.jengelman.gradle.plugins.shadow.impl.RelocatorRemapper
5
6
import com.github.jengelman.gradle.plugins.shadow.internal.GradleVersionUtil
@@ -348,7 +349,7 @@ class ShadowCopyAction implements CopyAction {
348
349
// that use the constant pool to determine the dependencies of a class.
349
350
ClassWriter cw = new ClassWriter (0 )
350
351
351
- ClassVisitor cv = new ClassRemapper (cw, remapper)
352
+ ClassVisitor cv = new ScalaSigClassVisitor ( new ClassRemapper (cw, remapper), remapper . scalaRenamer )
352
353
353
354
try {
354
355
cr. accept(cv, ClassReader . EXPAND_FRAMES )
You can’t perform that action at this time.
0 commit comments