What's Changed
- Introduced matchUnknownTypes option to MethodMatcher (for MethodInvocation) and ChangeMethodTargetToStatic by @nmck257 in #2160
- RemoveRedundantDependencyVersions no longer checks scope, in accordance with Maven behavior (fixes #2131) by @nmck257 in #2162
- Fix Maven dependency range resolution by @tkvangorder in #2174, #2175
- Update BlockStatementTemplateGenerator to handle lambda bodies which are instances of J.Block (fixes #2181) by @pway99 and @sambsnyd in #2182
- RecipeRun object now reports performance statistics in a few formats including a mermaid.js chart by @jkschneider in #2166
- Fix GroovyParser fails to parse no-argument closure by @jkschneider in #2168
- Fix Minimum space on UnnecessaryParentheses by @jkschneider in #2170
- Update TypeUtils to guard against IndexOutOfBounds exceptions by @pway99 in 6f6bf69
- In RewriteTest isolate parser state so that tests cannot inadvertently influence each other by @sambsnyd in 7b4a5f9
- Improve the performance of AddSerialVersionUidToSerializable, previously the slowest recipe in CommonStaticAnalysis by @sambsnyd in a55b3d8
- Eliminate wasted time running CompareEnumsWithEqualityOperator on inapplicable sources by @pway99 in a352a73
- GroovyParser support for switch statements by @sambsnyd in #2179
- Fix JavaTemplate failing to produce working code when replacing the bodies of single-expression lambdas by @pway99 in #2176
- Fix FindMethodsWithEmptyBodies is finding methods it should not by @pway99 in #2172
- Fix StringUtils.trimIndent() removes consecutive newlines by @sambsnyd in #2180
- Fix ReplaceLambdaWithMethodReference incorrectly replaces method invocations which accept arguments other than the lambda's arguments by @sambsnyd in #2178
- Fix JavaTemplate cannot modify assignments within an If statement's condition by @sambsnyd in #2090
- Fix ExplicitLambdaArgumentTypes may attempt to use a bare wildcard as a type when it should use the wildcard's bound by @sambsnyd in #2177
- Add Replace Stack with Deque Recipe by @jkschneider in #1610
- Guard against NPE from malformed type information in TypeUtils by @sambsnyd in #2173
- Fix Import trees produce incorrect package name in some cases by @sambsnyd in #2156
- Fix RemoveUnusedLocalVariables keeps assignement of unused variable, but removes its declaration by @sambsnyd in #1743
Full Changelog: v7.28.0...v7.29.0