What's Changed
- fix results data table by @kunli2 in #2987
- Maven ChangePropertyKey by @ge0ffrey in #2983
- Handle default case for switch statements in G island grammar by @shanman190 in #2997
- fix: merge new entry into existing mapping (#2881) by @thomaszub in #2992
- recipe to find implements specific interfaces by @kunli2 in #2989
- Fix static import autodetection when imports come first and in multip… by @shanman190 in #3000
- Fix templating in presence of nested enums by @knutwannheden in #3002
- Make AddGradleEnterprise react to the current Gradle version. Fixes g… by @shanman190 in #3003
- Switch to doNext so that applicability tests are correctly utilized by @shanman190 in #3006
- Rework tooling api for
RewriteTest
in order to make it more complete by @shanman190 in #3008 - Try out 20-ea for now, 21-ea soon by @timtebeek in #3011
- Fix a template error with Try in a For loop by @kunli2 in #3013
- Generify
Validated
toValidated<T>
by @JLLeitschuh in #3014 - Detect the required Java version from the failure log by @timtebeek in #3015
- Fix bug in parsing of switch statements in
G
island grammar by @shanman190 in #3021 - Support version ranges in parent reference by @knutwannheden in #3023
- Possibly downgrade Java when necessary by @timtebeek in #3027
- Handling of missing lower and upper boundaries in version ranges by @AlexanderSkrock in #3028
- Recipe instances now store their
RecipeDescriptor
to avoid cost of … by @nmck257 in #3024 - Do not rely on Path.toUri().getPath() by @marschall in #3010
- Use hasSize() for list/collections instead of size().isEqualTo() (#3032) by @khmarbaise in #3033
- refactor: JUnit Jupiter best practices by @timtebeek in #3035
- #2950 Preserve parentheses around binary operations by @AlexanderSkrock in #3038
- refactor: AssertJ best practices by @timtebeek in #3034
- Invalidate cached recipe descriptor by @BoykoAlex in #3042
- Execute lookup for declaring scope instead of parent scope by @AlexanderSkrock in #3041
- Added replace constant with another constant recipe. by @srmalkan in #3037
- chore(ci): bump actions/setup-java from 3.10.0 to 3.11.0 by @dependabot in #3044
- #2940 optional literal value for replacement by @AlexanderSkrock in #3045
- Introduce
org.openrewrite.maven.ChangePluginGroupIdAndArtifactId
by @gastaldi in #3048 - Fix
tabsize
inaccurate issue by @kunli2 in #3059 - Add guard for empty settings.gradle file by @shanman190 in #3060
- Improve onlyIfUsing validation regex by @jonaslindmark in #3064
- Introduced UsesType includeImplicit parameter, and updated all usages… by @nmck257 in #3056
- Optimize
StringUtils#matchesGlob()
by @knutwannheden in #3068 - Use
JavaParser.Builder
when constructingJavaTemplate
by @jkschneider in #3069 - Add
JavaTemplate.Matcher
by @knutwannheden in #2991 - Shared cursor root on all
TreeVisitor
returned byRecipe#getVisitor
by @jkschneider in #3070 - Add recipe examples to recipe and recipe descriptors by @kunli2 in #3081
New Contributors
- @AlexanderSkrock made their first contribution in #3028
- @marschall made their first contribution in #3010
- @khmarbaise made their first contribution in #3033
- @gastaldi made their first contribution in #3048
- @jonaslindmark made their first contribution in #3064
Full Changelog: v7.38.0...v7.39.0