Re: How to find out if Remapper / ClassRemapper actually remapped anything?
"ebruneton" (via asm Mailing List) <[email protected]> Sat, 22 May 2021 11:51:21 +0200
| Newsgroups | gmane.comp.java.objectweb.asm |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format... ------------=_1621677086-7718-1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, Can't you use your own Remapper or SimplerRemapper subclass, to check whether any call to its method return a remapped name? Le 2021-05-20 05:41, "Alexander Kriegisch" a écrit : > Hello. > > This might be a naive question, but is there a simple (or not so > simple, > if necessary) way to find out if a ClassRemapper or Remapper actually > did remap anything? > > Background: I am using Maven Shade Plugin, which in turn uses ASM in > order to implement relocating packages. For that purpose is provides a > >>>> RelocatorRemapper extends Remapper > > If a plugin configuration contains any relocation rules, Maven Shade > will either replace package names in Java source files or - if the > target file is a class file - pass the class through to Remapper in > order too do the magic. So far, so good, this works nicely. > > Now here is my problem: In build verification steps I would like to > check which classes were actually remapped, at least for some expected > relocations. Negative tests would check thatt other classes remain > unchanged. But the latter does not work, because Shade passes through > all classes, which often changes them, because e.g. the constant pool > gets overwritten, even if no actual relocation took place because the > target class neither needs to be relocated itself nor > imports/references > another relocated class. But still, the byte code looks different, i.e. > a simple checksum comparison between the class files before and after > the (basically and semantically no-op) relocation yields a difference. > > My idea was to try and create a pull request for Maven Shade which > writes the original class into the resulting JAR file, if the relocator > (and hence the remapper) did not effectively change anything. Do you > have any suggestion how to do that? > > Thanks in advance > > -- > You receive this message as a subscriber of the [email protected] mailing > list. > To unsubscribe: mailto:[email protected] > For general help: mailto:[email protected]?subject=help > OW2 mailing lists service home page: http://www.ow2.org/wws ------------=_1621677086-7718-1 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit -- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws ------------=_1621677086-7718-1--