Logging with Panache: add support for method references of Log
methods
#46479
+214
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In case the
Log
API is used in a lambda expression, everything already works, because a lambda expression body is compiled into a separate method and theLog
API is invoked using classicinvokestatic
instruction.However, in case the
Log
API is used as a method reference (Log::info
), it breaks, because theLoggingWithPanacheProcessor
fails to transform that usage. This commit fixes that by looking forinvokedynamic
invocations of theLambdaMetafactory
where the method handle belongs toLog
. Such instructions are rewritten to delegate to the JBoss Logging instance, as usual.