Warn when certain constructor is used
Remi Forax
forax at univ-mlv.fr
Thu May 31 12:18:47 UTC 2018
Hi Pietro,
detecting usages of certain API entrypoints is usually done on the bytecode instead of on the source code in the Java world, it's usually easier because the bytecode is more stable than the source code and it has also the advantage to work not only with Java the language but also in Scala, Groovy, Kotlin, etc.
You can use ASM [1] for that, here is an example [2] from stackoverflow.
cheers,
Rémi
[1] http://asm.ow2.io/
[2] https://stackoverflow.com/questions/930289/how-can-i-find-all-the-methods-that-call-a-given-method-in-java#931410
----- Mail original -----
> De: "Pietro Paolini" <Pietro.Paolini at alfasystems.com>
> À: "compiler-dev" <compiler-dev at openjdk.java.net>
> Envoyé: Jeudi 31 Mai 2018 11:05:20
> Objet: Warn when certain constructor is used
> Hi all,
>
> I am not sure the question is appropriate for compiler-dev but I would like to
> give it a try anyway.
>
> I would like to detect when a certain class's constructor is used and log its
> usage along with filename and line number somewhere, such as a log file or
> standard output, I can't use an IDE to do that as I am working on a fairly
> large codebase and I need to automate the process, moreover it seems like an
> interesting problem to solve.
>
> https://docs.oracle.com/javase/7/docs/api/javax/tools/JavaCompiler.html
>
> I was hoping that could help me but I haven't spot anything as yet, even though
> I must admit that my knowledge on the matter is limited.
>
> Thanks,
> Pietro
>
>
> Pietro Paolini
> Consultant
>
> Alfa
> ________________________________
> e: pietro.paolini at alfasystems.com | w:
> alfasystems.com<https://www.alfasystems.com>
> t: +44 (0) 20 7920-2643 | Moor Place, 1 Fore Street Avenue, London, EC2Y 9DT, GB
> ________________________________
>
> The contents of this communication are not intended to be binding or constitute
> any form of offer or acceptance or give rise to any legal obligations on behalf
> of the sender or Alfa. The views or opinions expressed represent those of the
> author and not necessarily those of Alfa. This email and any attachments are
> strictly confidential and are intended solely for use by the individual or
> entity to whom it is addressed. If you are not the addressee (or responsible
> for delivery of the message to the addressee) you may not copy, forward,
> disclose or use any part of the message or its attachments. At present the
> integrity of email across the internet cannot be guaranteed and messages sent
> via this medium are potentially at risk. All liability is excluded to the
> extent permitted by law for any claims arising as a result of the use of this
> medium to transmit information by or to Alfa or its affiliates.
>
> Alfa Financial Software Ltd
> Reg. in England No: 0248 2325
More information about the compiler-dev
mailing list