diff --git a/src/main/resources/8-40-2-Release.md b/src/main/resources/8-40-2-Release.md new file mode 100644 index 0000000..243345e --- /dev/null +++ b/src/main/resources/8-40-2-Release.md @@ -0,0 +1,225 @@ +# 8.40.2 release (2024-11-14) + +:::info +This changelog only shows what recipes have been added, removed, or changed. OpenRewrite may do releases that do not include these types of changes. To see these changes, please go to the [releases page](https://github.com/openrewrite/rewrite/releases). +::: + +## New Recipes + +* [org.openrewrite.ExcludeFileFromGitignore](https://docs.openrewrite.org/recipes/core/excludefilefromgitignore): This recipe will remove a file or directory from the .gitignore file. If the file or directory is already in the .gitignore file, it will be removed or negated. If the file or directory is not in the .gitignore file, no action will be taken. +* [org.openrewrite.github.FindMissingTimeout](https://docs.openrewrite.org/recipes/github/findmissingtimeout): Find GitHub Actions jobs missing a timeout. +* [org.openrewrite.hibernate.MigrateResultCheckStyleToExpectation](https://docs.openrewrite.org/recipes/hibernate/migrateresultcheckstyletoexpectation): Will migrate the usage of `org.hibernate.annotations.ResultCheckStyle` to `org.hibernate.jdbc.Expectation` in `@SQLInsert`, `@SqlUpdate`, `@SqlDelete` and `@SqlDeleteAll` annotations. +* [org.openrewrite.hibernate.MigrateToHibernate64](https://docs.openrewrite.org/recipes/hibernate/migratetohibernate64): This recipe will apply changes commonly needed when migrating to Hibernate 6.4.x. +* [org.openrewrite.hibernate.MigrateToHibernate65](https://docs.openrewrite.org/recipes/hibernate/migratetohibernate65): This recipe will apply changes commonly needed when migrating to Hibernate 6.5.x. +* [org.openrewrite.hibernate.RemoveInvalidHibernateGeneratedValueAnnotation](https://docs.openrewrite.org/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation): Removes `@GeneratedValue` annotation from fields that are not also annotated with `@Id`. +* [org.openrewrite.java.RemoveMethodInvocations](https://docs.openrewrite.org/recipes/java/removemethodinvocations): Remove method invocations if syntactically safe. +* [org.openrewrite.java.jackson.codehaus.ReplaceSerializationConfigAnnotationIntrospector](https://docs.openrewrite.org/recipes/java/jackson/codehaus/replaceserializationconfigannotationintrospector): Migrate serialization annotation processor to use the codehaus config method. +* [org.openrewrite.java.jackson.codehaus.TransferJsonSerializeArgumentsFromCodehausToFasterXML](https://docs.openrewrite.org/recipes/java/jackson/codehaus/transferjsonserializeargumentsfromcodehaustofasterxml): Transfer @JsonSerialize annotation arguments (using, contentUsing, keyUsing, nullUsing) from Codehaus to FasterXML. If the argument was set already, it will not be transferred. +* [org.openrewrite.java.migrate.joda.JodaTimeRecipe](https://docs.openrewrite.org/recipes/java/migrate/joda/jodatimerecipe): Prefer the Java standard library over third-party usage of Joda Time. +* [org.openrewrite.java.spring.boot3.SpringBootProperties_3_4](https://docs.openrewrite.org/recipes/java/spring/boot3/springbootproperties_3_4): Migrate properties found in `application.properties` and `application.yml`. +* [org.openrewrite.java.spring.data.MigrateAuditorAwareToOptional](https://docs.openrewrite.org/recipes/java/spring/data/migrateauditorawaretooptional): As of Spring boot 2.0, the `AuditorAware.getCurrentAuditor` method should return an `Optional`. This recipe will update the implementations of this method to return an `Optional` using the `ofNullable`. +* [org.openrewrite.java.spring.framework.BeanMethodReturnNull](https://docs.openrewrite.org/recipes/java/spring/framework/beanmethodreturnnull): Make `@Bean` methods return `Object` instead of `void`. +* [org.openrewrite.java.spring.framework.BeanMethodsNotPublic](https://docs.openrewrite.org/recipes/java/spring/framework/beanmethodsnotpublic): Remove public modifier from `@Bean` methods. They no longer have to be public visibility to be usable by Spring. +* [org.openrewrite.java.testing.assertj.JUnitAssertInstanceOfToAssertThat](https://docs.openrewrite.org/recipes/java/testing/assertj/junitassertinstanceoftoassertthat): Convert JUnit-style `assertInstanceOf()` to AssertJ's `assertThat().isInstanceOf()`. +* [org.openrewrite.java.testing.dbrider.ExecutionListenerToDbRiderAnnotation](https://docs.openrewrite.org/recipes/java/testing/dbrider/executionlistenertodbriderannotation): Migrate the `DBRiderTestExecutionListener` to the `@DBRider` annotation. This recipe is useful when migrating from JUnit 4 `dbrider-spring` to JUnit 5 `dbrider-junit5`. +* [org.openrewrite.java.testing.dbrider.MigrateDbRiderSpringToDbRiderJUnit5](https://docs.openrewrite.org/recipes/java/testing/dbrider/migratedbriderspringtodbriderjunit5): This recipe will migrate the necessary dependencies and annotations from DbRider with JUnit4 to JUnit5 in a Spring application. +* [org.openrewrite.java.testing.jmockit.JMockitMockUpToMockito](https://docs.openrewrite.org/recipes/java/testing/jmockit/jmockitmockuptomockito): Rewrites JMockit `MockUp` blocks to Mockito statements. This recipe will not rewrite private methods in MockUp. +* [org.openrewrite.java.testing.mockito.Mockito4to5Only](https://docs.openrewrite.org/recipes/java/testing/mockito/mockito4to5only): Upgrade Mockito from 4.x to 5.x. Does not include 1.x to 4.x migration. +* [org.openrewrite.java.testing.mockito.VerifyZeroToNoMoreInteractions](https://docs.openrewrite.org/recipes/java/testing/mockito/verifyzerotonomoreinteractions): Replaces `verifyZeroInteractions()` with `verifyNoMoreInteractions()` in Mockito tests when migration when using a Mockito version < 3.x. +* [org.openrewrite.jenkins.AddJellyXmlDeclaration](https://docs.openrewrite.org/recipes/jenkins/addjellyxmldeclaration): Ensure the XML declaration `` is present in all `.jelly` files. +* [org.openrewrite.kubernetes.ChangeApiVersion](https://docs.openrewrite.org/recipes/kubernetes/changeapiversion): Change the Kubernetes API version in a resource. +* [org.openrewrite.kubernetes.migrate.MigrateToAPIv1_26](https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_26): This recipe will apply changes commonly needed when migrating to Kubernetes API v1.26. +* [org.openrewrite.kubernetes.migrate.MigrateToAPIv1_27](https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_27): This recipe will apply changes commonly needed when migrating to Kubernetes API v1.27. +* [org.openrewrite.kubernetes.migrate.MigrateToAPIv1_29](https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_29): This recipe will apply changes commonly needed when migrating to Kubernetes API v1.29. +* [org.openrewrite.kubernetes.migrate.MigrateToAPIv1_32](https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_32): This recipe will apply changes commonly needed when migrating to Kubernetes API v1.32. +* [org.openrewrite.maven.RemoveUnusedProperties](https://docs.openrewrite.org/recipes/maven/removeunusedproperties): Detect and remove Maven property declarations which do not have any usage within the project. +* [org.openrewrite.staticanalysis.AnnotateNullableMethods](https://docs.openrewrite.org/recipes/staticanalysis/annotatenullablemethods): Add the `@org.jspecify.annotation.Nullable` to non-private methods that may return `null`. This recipe scans for methods that do not already have a `@Nullable` annotation and checks their return statements for potential null values. It also identifies known methods from standard libraries that may return null, such as methods from `Map`, `Queue`, `Deque`, `NavigableSet`, and `Spliterator`. The return of streams, or lambdas are not taken into account. +* [org.openrewrite.staticanalysis.BufferedWriterCreationRecipes](https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipes): The code `new BufferedWriter(new FileWriter(f))` creates a `BufferedWriter` that does not close the underlying `FileWriter` when it is closed. This can lead to file descriptor leaks as per [CWE-755](https://cwe.mitre.org/data/definitions/755.html). Use `Files.newBufferedWriter` to create a `BufferedWriter` that closes the underlying file descriptor when it is closed. +* [org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithFileAndBooleanArgumentsRecipe](https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithfileandbooleanargumentsrecipe): Convert `new BufferedWriter(new FileWriter(f, b))` to `Files.newBufferedWriter(f.toPath(), b ? StandardOpenOption.APPEND : StandardOpenOption.CREATE)`. +* [org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithFileArgumentRecipe](https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithfileargumentrecipe): Convert `new BufferedWriter(new FileWriter(f))` to `Files.newBufferedWriter(f.toPath())`. +* [org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithStringAndBooleanArgumentsRecipe](https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithstringandbooleanargumentsrecipe): Convert `new BufferedWriter(new FileWriter(s, b))` to `Files.newBufferedWriter(new java.io.File(s).toPath(), b ? StandardOpenOption.APPEND : StandardOpenOption.CREATE)`. +* [org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithStringArgumentRecipe](https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithstringargumentrecipe): Convert `new BufferedWriter(new FileWriter(s))` to `Files.newBufferedWriter(new java.io.File(s).toPath())`. +* [org.openrewrite.staticanalysis.ReplaceClassIsInstanceWithInstanceof](https://docs.openrewrite.org/recipes/staticanalysis/replaceclassisinstancewithinstanceof): There should be no `A.class.isInstance(a)`, it should be replaced by `a instanceof A`. +* [tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$NameContentEqualsRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipesusdnamecontentequalsrecipe): Recipe created for the following Refaster template:
```java
static final class NameContentEquals {

@BeforeTemplate
boolean before(Name name, CharSequence string) {
return name.toString().equals(string.toString());
}

@BeforeTemplate
boolean before(Name name, String string) {
return name.toString().equals(string);
}

@AfterTemplate
boolean after(Name name, CharSequence string) {
return name.contentEquals(string);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.FileRulesRecipes$FilesCreateTempFileInCustomDirectoryToFileRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdfilescreatetempfileincustomdirectorytofilerecipe): Recipe created for the following Refaster template:
```java
static final class FilesCreateTempFileInCustomDirectoryToFile {

@BeforeTemplate
File before(File directory, String prefix, String suffix) throws IOException {
return File.createTempFile(prefix, suffix, directory);
}

@AfterTemplate
File after(File directory, String prefix, String suffix) throws IOException {
return Files.createTempFile(directory.toPath(), prefix, suffix).toFile();
}
}
```
. +* [tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathInstanceRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdpathinstancerecipe): Recipe created for the following Refaster template:
```java
static final class PathInstance {

@BeforeTemplate
Path before(Path path) {
return path.toFile().toPath();
}

@AfterTemplate
Path after(Path path) {
return path;
}
}
```
. +* [tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathOfUriRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdpathofurirecipe): Recipe created for the following Refaster template:
```java
static final class PathOfUri {

@BeforeTemplate
Path before(URI uri) {
return Paths.get(uri);
}

@AfterTemplate
Path after(URI uri) {
return Path.of(uri);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipes): Refaster template recipes for `tech.picnic.errorprone.refasterrules.MicrometerRules`. [Source](https://error-prone.picnic.tech/refasterrules/MicrometerRules). +* [tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf1Recipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof1recipe): Recipe created for the following Refaster template:
```java
static final class TagsOf1 {

@BeforeTemplate
ImmutableCollection before(Tag tag) {
return Refaster.anyOf(ImmutableSet.of(tag), ImmutableList.of(tag));
}

@AfterTemplate
Iterable after(Tag tag) {
return Tags.of(tag);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf2Recipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof2recipe): Recipe created for the following Refaster template:
```java
static final class TagsOf2 {

@BeforeTemplate
ImmutableCollection before(Tag tag1, Tag tag2) {
return Refaster.anyOf(ImmutableSet.of(tag1, tag2), ImmutableList.of(tag1, tag2));
}

@AfterTemplate
Iterable after(Tag tag1, Tag tag2) {
return Tags.of(tag1, tag2);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf3Recipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof3recipe): Recipe created for the following Refaster template:
```java
static final class TagsOf3 {

@BeforeTemplate
ImmutableCollection before(Tag tag1, Tag tag2, Tag tag3) {
return Refaster.anyOf(ImmutableSet.of(tag1, tag2, tag3), ImmutableList.of(tag1, tag2, tag3));
}

@AfterTemplate
Iterable after(Tag tag1, Tag tag2, Tag tag3) {
return Tags.of(tag1, tag2, tag3);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf4Recipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof4recipe): Recipe created for the following Refaster template:
```java
static final class TagsOf4 {

@BeforeTemplate
ImmutableCollection before(Tag tag1, Tag tag2, Tag tag3, Tag tag4) {
return Refaster.anyOf(ImmutableSet.of(tag1, tag2, tag3, tag4), ImmutableList.of(tag1, tag2, tag3, tag4));
}

@AfterTemplate
Iterable after(Tag tag1, Tag tag2, Tag tag3, Tag tag4) {
return Tags.of(tag1, tag2, tag3, tag4);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf5Recipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof5recipe): Recipe created for the following Refaster template:
```java
static final class TagsOf5 {

@BeforeTemplate
ImmutableCollection before(Tag tag1, Tag tag2, Tag tag3, Tag tag4, Tag tag5) {
return Refaster.anyOf(ImmutableSet.of(tag1, tag2, tag3, tag4, tag5), ImmutableList.of(tag1, tag2, tag3, tag4, tag5));
}

@AfterTemplate
Iterable after(Tag tag1, Tag tag2, Tag tag3, Tag tag4, Tag tag5) {
return Tags.of(tag1, tag2, tag3, tag4, tag5);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerCompareUnsignedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegercompareunsignedrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerCompareUnsigned {

@BeforeTemplate
int before(int x, int y) {
return UnsignedInts.compare(x, y);
}

@AfterTemplate
int after(int x, int y) {
return Integer.compareUnsigned(x, y);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerDivideUnsignedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerdivideunsignedrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerDivideUnsigned {

@BeforeTemplate
int before(int x, int y) {
return UnsignedInts.divide(x, y);
}

@AfterTemplate
int after(int x, int y) {
return Integer.divideUnsigned(x, y);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerParseUnsignedIntRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerparseunsignedintrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerParseUnsignedInt {

@BeforeTemplate
int before(String string) {
return Refaster.anyOf(UnsignedInts.parseUnsignedInt(string), Integer.parseUnsignedInt(string, 10));
}

@AfterTemplate
int after(String string) {
return Integer.parseUnsignedInt(string);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerParseUnsignedIntWithRadixRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerparseunsignedintwithradixrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerParseUnsignedIntWithRadix {

@BeforeTemplate
int before(String string, int radix) {
return UnsignedInts.parseUnsignedInt(string, radix);
}

@AfterTemplate
int after(String string, int radix) {
return Integer.parseUnsignedInt(string, radix);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerRemainderUnsignedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerremainderunsignedrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerRemainderUnsigned {

@BeforeTemplate
int before(int x, int y) {
return UnsignedInts.remainder(x, y);
}

@AfterTemplate
int after(int x, int y) {
return Integer.remainderUnsigned(x, y);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerToUnsignedStringRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegertounsignedstringrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerToUnsignedString {

@BeforeTemplate
String before(int i) {
return Refaster.anyOf(UnsignedInts.toString(i), Integer.toUnsignedString(i, 10));
}

@AfterTemplate
String after(int i) {
return Integer.toUnsignedString(i);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerToUnsignedStringWithRadixRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegertounsignedstringwithradixrecipe): Recipe created for the following Refaster template:
```java
static final class IntegerToUnsignedStringWithRadix {

@BeforeTemplate
String before(int i, int radix) {
return UnsignedInts.toString(i, radix);
}

@AfterTemplate
String after(int i, int radix) {
return Integer.toUnsignedString(i, radix);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongCompareUnsignedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongcompareunsignedrecipe): Recipe created for the following Refaster template:
```java
static final class LongCompareUnsigned {

@BeforeTemplate
long before(long x, long y) {
return UnsignedLongs.compare(x, y);
}

@AfterTemplate
long after(long x, long y) {
return Long.compareUnsigned(x, y);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongDivideUnsignedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongdivideunsignedrecipe): Recipe created for the following Refaster template:
```java
static final class LongDivideUnsigned {

@BeforeTemplate
long before(long x, long y) {
return UnsignedLongs.divide(x, y);
}

@AfterTemplate
long after(long x, long y) {
return Long.divideUnsigned(x, y);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongParseUnsignedLongRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongparseunsignedlongrecipe): Recipe created for the following Refaster template:
```java
static final class LongParseUnsignedLong {

@BeforeTemplate
long before(String string) {
return Refaster.anyOf(UnsignedLongs.parseUnsignedLong(string), Long.parseUnsignedLong(string, 10));
}

@AfterTemplate
long after(String string) {
return Long.parseUnsignedLong(string);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongParseUnsignedLongWithRadixRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongparseunsignedlongwithradixrecipe): Recipe created for the following Refaster template:
```java
static final class LongParseUnsignedLongWithRadix {

@BeforeTemplate
long before(String string, int radix) {
return UnsignedLongs.parseUnsignedLong(string, radix);
}

@AfterTemplate
long after(String string, int radix) {
return Long.parseUnsignedLong(string, radix);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongRemainderUnsignedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongremainderunsignedrecipe): Recipe created for the following Refaster template:
```java
static final class LongRemainderUnsigned {

@BeforeTemplate
long before(long x, long y) {
return UnsignedLongs.remainder(x, y);
}

@AfterTemplate
long after(long x, long y) {
return Long.remainderUnsigned(x, y);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongToUnsignedStringRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongtounsignedstringrecipe): Recipe created for the following Refaster template:
```java
static final class LongToUnsignedString {

@BeforeTemplate
String before(long i) {
return Refaster.anyOf(UnsignedLongs.toString(i), Long.toUnsignedString(i, 10));
}

@AfterTemplate
String after(long i) {
return Long.toUnsignedString(i);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongToUnsignedStringWithRadixRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongtounsignedstringwithradixrecipe): Recipe created for the following Refaster template:
```java
static final class LongToUnsignedStringWithRadix {

@BeforeTemplate
String before(long i, int radix) {
return UnsignedLongs.toString(i, radix);
}

@AfterTemplate
String after(long i, int radix) {
return Long.toUnsignedString(i, radix);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringindexofcharrecipe): Recipe created for the following Refaster template:
```java
static final class StringIndexOfChar {

@BeforeTemplate
@SuppressWarnings(value = "java:S4635")
int before(String string, int ch, int fromIndex) {
return string.substring(fromIndex).indexOf(ch);
}

@AfterTemplate
int after(String string, int ch, int fromIndex) {
return Math.max(-1, string.indexOf(ch, fromIndex) - fromIndex);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringindexofstringrecipe): Recipe created for the following Refaster template:
```java
static final class StringIndexOfString {

@BeforeTemplate
@SuppressWarnings(value = "java:S4635")
int before(String string, String substring, int fromIndex) {
return string.substring(fromIndex).indexOf(substring);
}

@AfterTemplate
int after(String string, String substring, int fromIndex) {
return Math.max(-1, string.indexOf(substring, fromIndex) - fromIndex);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofcharrecipe): Recipe created for the following Refaster template:
```java
static final class StringLastIndexOfChar {

@BeforeTemplate
@SuppressWarnings(value = "java:S4635")
int before(String string, int ch, int fromIndex) {
return string.substring(fromIndex).lastIndexOf(ch);
}

@AfterTemplate
int after(String string, int ch, int fromIndex) {
return Math.max(-1, string.lastIndexOf(ch) - fromIndex);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharWithIndexRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofcharwithindexrecipe): Recipe created for the following Refaster template:
```java
static final class StringLastIndexOfCharWithIndex {

@BeforeTemplate
int before(String string, int ch, int fromIndex) {
return string.substring(0, fromIndex).lastIndexOf(ch);
}

@AfterTemplate
int after(String string, int ch, int fromIndex) {
return string.lastIndexOf(ch, fromIndex - 1);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofstringrecipe): Recipe created for the following Refaster template:
```java
static final class StringLastIndexOfString {

@BeforeTemplate
@SuppressWarnings(value = "java:S4635")
int before(String string, String substring, int fromIndex) {
return string.substring(fromIndex).lastIndexOf(substring);
}

@AfterTemplate
int after(String string, String substring, int fromIndex) {
return Math.max(-1, string.lastIndexOf(substring) - fromIndex);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringWithIndexRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofstringwithindexrecipe): Recipe created for the following Refaster template:
```java
static final class StringLastIndexOfStringWithIndex {

@BeforeTemplate
int before(String string, String substring, int fromIndex) {
return string.substring(0, fromIndex).lastIndexOf(substring);
}

@AfterTemplate
int after(String string, String substring, int fromIndex) {
return string.lastIndexOf(substring, fromIndex - 1);
}
}
```
. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringStartsWithRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringstartswithrecipe): Recipe created for the following Refaster template:
```java
static final class StringStartsWith {

@BeforeTemplate
@SuppressWarnings(value = "java:S4635")
boolean before(String string, String prefix, int fromIndex) {
return string.substring(fromIndex).startsWith(prefix);
}

@AfterTemplate
boolean after(String string, String prefix, int fromIndex) {
return string.startsWith(prefix, fromIndex);
}
}
```
. + +## Removed Recipes + +* **org.openrewrite.java.spring.BeanMethodsNotPublic**: Remove public modifier from `@Bean` methods. They no longer have to be public visibility to be usable by Spring. +* **org.openrewrite.java.testing.mockito.RetainStrictnessWarn**: Migrating from JUnit 4 to 5 [changes the default strictness](https://stackoverflow.com/a/53234137/53444) of the mocks from `WARN` to `STRICT_STUBS`. To prevent tests from failing we restore the original behavior by adding `@MockitoSettings(strictness = Strictness.WARN)`. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$BooleanCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class BooleanCompare { + + @BeforeTemplate + int before(boolean a, boolean b) { + return Booleans.compare(a, b); + } + + @AfterTemplate + int after(boolean a, boolean b) { + return Boolean.compare(a, b); + } +} +``` +. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$CharacterCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class CharacterCompare { + + @BeforeTemplate + int before(char a, char b) { + return Chars.compare(a, b); + } + + @AfterTemplate + int after(char a, char b) { + return Character.compare(a, b); + } +} +``` +. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$DoubleCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class DoubleCompare { + + @BeforeTemplate + int before(double a, double b) { + return Doubles.compare(a, b); + } + + @AfterTemplate + int after(double a, double b) { + return Double.compare(a, b); + } +} +``` +. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$FloatCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class FloatCompare { + + @BeforeTemplate + int before(float a, float b) { + return Floats.compare(a, b); + } + + @AfterTemplate + int after(float a, float b) { + return Float.compare(a, b); + } +} +``` +. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class IntegerCompare { + + @BeforeTemplate + int before(int a, int b) { + return Ints.compare(a, b); + } + + @AfterTemplate + int after(int a, int b) { + return Integer.compare(a, b); + } +} +``` +. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class LongCompare { + + @BeforeTemplate + int before(long a, long b) { + return Longs.compare(a, b); + } + + @AfterTemplate + int after(long a, long b) { + return Long.compare(a, b); + } +} +``` +. +* **tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortCompareRecipe**: Recipe created for the following Refaster template: +```java +static final class ShortCompare { + + @BeforeTemplate + int before(short a, short b) { + return Shorts.compare(a, b); + } + + @AfterTemplate + int after(short a, short b) { + return Short.compare(a, b); + } +} +``` +. + +## Changed Recipes + +* [org.openrewrite.java.dependencies.RemoveDependency](https://docs.openrewrite.org/recipes/java/dependencies/removedependency) was changed: + * Old Options: + * `artifactId: { type: String, required: true }` + * `configuration: { type: String, required: false }` + * `groupId: { type: String, required: true }` + * `scope: { type: String, required: false }` + * New Options: + * `artifactId: { type: String, required: true }` + * `configuration: { type: String, required: false }` + * `groupId: { type: String, required: true }` + * `scope: { type: String, required: false }` + * `unlessUsing: { type: String, required: false }` +* [org.openrewrite.maven.UpgradeParentVersion](https://docs.openrewrite.org/recipes/maven/upgradeparentversion) was changed: + * Old Options: + * `artifactId: { type: String, required: true }` + * `groupId: { type: String, required: true }` + * `newVersion: { type: String, required: true }` + * `versionPattern: { type: String, required: false }` + * New Options: + * `artifactId: { type: String, required: true }` + * `groupId: { type: String, required: true }` + * `newVersion: { type: String, required: true }` + * `onlyExternal: { type: Boolean, required: false }` + * `versionPattern: { type: String, required: false }` +* [org.openrewrite.yaml.search.FindProperty](https://docs.openrewrite.org/recipes/yaml/search/findproperty) was changed: + * Old Options: + * `propertyKey: { type: String, required: true }` + * `relaxedBinding: { type: Boolean, required: false }` + * New Options: + * `propertyKey: { type: String, required: true }` + * `propertyValue: { type: String, required: false }` + * `relaxedBinding: { type: Boolean, required: false }` \ No newline at end of file diff --git a/src/main/resources/recipeDescriptors.yml b/src/main/resources/recipeDescriptors.yml index 544b947..906404d 100644 --- a/src/main/resources/recipeDescriptors.yml +++ b/src/main/resources/recipeDescriptors.yml @@ -1,6 +1,6 @@ rewrite-ai-search: artifactId: "rewrite-ai-search" - version: "0.18.1" + version: "0.19.1" markdownRecipeDescriptors: io.moderne.ai.FindCommentsLanguage: name: "io.moderne.ai.FindCommentsLanguage" @@ -89,7 +89,7 @@ rewrite-ai-search: artifactId: "rewrite-ai-search" rewrite-all: artifactId: "rewrite-all" - version: "1.6.2" + version: "1.7.1" markdownRecipeDescriptors: org.openrewrite.FindCallGraph: name: "org.openrewrite.FindCallGraph" @@ -121,7 +121,7 @@ rewrite-all: artifactId: "rewrite-all" rewrite-analysis: artifactId: "rewrite-analysis" - version: "2.11.2" + version: "2.12.2" markdownRecipeDescriptors: org.openrewrite.analysis.controlflow.ControlFlowVisualization: name: "org.openrewrite.analysis.controlflow.ControlFlowVisualization" @@ -184,7 +184,7 @@ rewrite-analysis: artifactId: "rewrite-analysis" rewrite-android: artifactId: "rewrite-android" - version: "0.2.0" + version: "0.3.4" markdownRecipeDescriptors: org.openrewrite.android.ChangeAndroidSdkVersion: name: "org.openrewrite.android.ChangeAndroidSdkVersion" @@ -311,7 +311,7 @@ rewrite-android: artifactId: "rewrite-android" rewrite-apache: artifactId: "rewrite-apache" - version: "1.8.1" + version: "1.8.2" markdownRecipeDescriptors: org.openrewrite.apache.commons.codec.ApacheBase64ToJavaBase64: name: "org.openrewrite.apache.commons.codec.ApacheBase64ToJavaBase64" @@ -1035,7 +1035,7 @@ rewrite-apache: artifactId: "rewrite-apache" rewrite-circleci: artifactId: "rewrite-circleci" - version: "2.7.2" + version: "2.8.1" markdownRecipeDescriptors: org.openrewrite.circleci.InstallOrb: name: "org.openrewrite.circleci.InstallOrb" @@ -1063,7 +1063,7 @@ rewrite-circleci: artifactId: "rewrite-circleci" rewrite-codemods: artifactId: "rewrite-codemods" - version: "0.4.0" + version: "0.4.2" markdownRecipeDescriptors: org.openrewrite.codemods.ApplyCodemod: name: "org.openrewrite.codemods.ApplyCodemod" @@ -4576,7 +4576,7 @@ rewrite-codemods: artifactId: "rewrite-codemods" rewrite-codemods-ng: artifactId: "rewrite-codemods-ng" - version: "0.4.2" + version: "0.5.1" markdownRecipeDescriptors: org.openrewrite.codemods.migrate.angular.ApplyAngularCLI: name: "org.openrewrite.codemods.migrate.angular.ApplyAngularCLI" @@ -4612,7 +4612,7 @@ rewrite-codemods-ng: artifactId: "rewrite-codemods-ng" rewrite-concourse: artifactId: "rewrite-concourse" - version: "2.7.2" + version: "2.8.1" markdownRecipeDescriptors: org.openrewrite.concourse.ChangeResourceVersion: name: "org.openrewrite.concourse.ChangeResourceVersion" @@ -4692,7 +4692,7 @@ rewrite-concourse: artifactId: "rewrite-concourse" rewrite-core: artifactId: "rewrite-core" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.DeleteSourceFiles: name: "org.openrewrite.DeleteSourceFiles" @@ -4704,6 +4704,19 @@ rewrite-core: required: true isImperative: true artifactId: "rewrite-core" + org.openrewrite.ExcludeFileFromGitignore: + name: "org.openrewrite.ExcludeFileFromGitignore" + description: "This recipe will remove a file or directory from the .gitignore\ + \ file. If the file or directory is already in the .gitignore file, it will\ + \ be removed or negated. If the file or directory is not in the .gitignore\ + \ file, no action will be taken." + docLink: "https://docs.openrewrite.org/recipes/core/excludefilefromgitignore" + options: + - name: "paths" + type: "List" + required: true + isImperative: true + artifactId: "rewrite-core" org.openrewrite.FindCollidingSourceFiles: name: "org.openrewrite.FindCollidingSourceFiles" description: "Finds source files which share a path with another source file.\ @@ -5028,7 +5041,7 @@ rewrite-core: artifactId: "rewrite-core" rewrite-cucumber-jvm: artifactId: "rewrite-cucumber-jvm" - version: "1.6.2" + version: "1.6.3" markdownRecipeDescriptors: org.openrewrite.cucumber.jvm.CucumberAnnotationToSuite: name: "org.openrewrite.cucumber.jvm.CucumberAnnotationToSuite" @@ -5107,7 +5120,7 @@ rewrite-cucumber-jvm: artifactId: "rewrite-cucumber-jvm" rewrite-docker: artifactId: "rewrite-docker" - version: "1.1.2" + version: "1.2.1" markdownRecipeDescriptors: org.openrewrite.docker.search.FindDockerImageUses: name: "org.openrewrite.docker.search.FindDockerImageUses" @@ -5118,7 +5131,7 @@ rewrite-docker: artifactId: "rewrite-docker" rewrite-dotnet: artifactId: "rewrite-dotnet" - version: "0.3.2" + version: "0.4.1" markdownRecipeDescriptors: org.openrewrite.dotnet.MigrateToNet6: name: "org.openrewrite.dotnet.MigrateToNet6" @@ -5181,7 +5194,7 @@ rewrite-dotnet: artifactId: "rewrite-dotnet" rewrite-feature-flags: artifactId: "rewrite-feature-flags" - version: "0.9.0" + version: "0.10.0" markdownRecipeDescriptors: org.openrewrite.featureflags.RemoveBooleanFlag: name: "org.openrewrite.featureflags.RemoveBooleanFlag" @@ -5383,7 +5396,7 @@ rewrite-feature-flags: artifactId: "rewrite-feature-flags" rewrite-github-actions: artifactId: "rewrite-github-actions" - version: "2.8.2" + version: "2.9.2" markdownRecipeDescriptors: org.openrewrite.github.AddCronTrigger: name: "org.openrewrite.github.AddCronTrigger" @@ -5486,6 +5499,13 @@ rewrite-github-actions: options: [] isImperative: false artifactId: "rewrite-github-actions" + org.openrewrite.github.FindMissingTimeout: + name: "org.openrewrite.github.FindMissingTimeout" + description: "Find GitHub Actions jobs missing a timeout." + docLink: "https://docs.openrewrite.org/recipes/github/findmissingtimeout" + options: [] + isImperative: true + artifactId: "rewrite-github-actions" org.openrewrite.github.PreferSecretsInheritWorkflow: name: "org.openrewrite.github.PreferSecretsInheritWorkflow" description: "Pass all secrets to a reusable workflow using `secrets: inherit`.\ @@ -5618,7 +5638,7 @@ rewrite-gitlab: artifactId: "rewrite-gitlab" rewrite-gradle: artifactId: "rewrite-gradle" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.gradle.AddDependency: name: "org.openrewrite.gradle.AddDependency" @@ -6322,7 +6342,7 @@ rewrite-gradle: artifactId: "rewrite-gradle" rewrite-groovy: artifactId: "rewrite-groovy" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.groovy.format.AutoFormat: name: "org.openrewrite.groovy.format.AutoFormat" @@ -6358,7 +6378,7 @@ rewrite-groovy: artifactId: "rewrite-groovy" rewrite-hcl: artifactId: "rewrite-hcl" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.hcl.DeleteContent: name: "org.openrewrite.hcl.DeleteContent" @@ -6463,7 +6483,7 @@ rewrite-hcl: artifactId: "rewrite-hcl" rewrite-hibernate: artifactId: "rewrite-hibernate" - version: "1.11.0" + version: "1.12.0" markdownRecipeDescriptors: org.openrewrite.hibernate.EmptyInterceptorToInterface: name: "org.openrewrite.hibernate.EmptyInterceptorToInterface" @@ -6482,6 +6502,15 @@ rewrite-hibernate: options: [] isImperative: true artifactId: "rewrite-hibernate" + org.openrewrite.hibernate.MigrateResultCheckStyleToExpectation: + name: "org.openrewrite.hibernate.MigrateResultCheckStyleToExpectation" + description: "Will migrate the usage of `org.hibernate.annotations.ResultCheckStyle`\ + \ to `org.hibernate.jdbc.Expectation` in `@SQLInsert`, `@SqlUpdate`, `@SqlDelete`\ + \ and `@SqlDeleteAll` annotations." + docLink: "https://docs.openrewrite.org/recipes/hibernate/migrateresultcheckstyletoexpectation" + options: [] + isImperative: true + artifactId: "rewrite-hibernate" org.openrewrite.hibernate.MigrateToHibernate60: name: "org.openrewrite.hibernate.MigrateToHibernate60" description: "This recipe will apply changes commonly needed when migrating\ @@ -6518,6 +6547,22 @@ rewrite-hibernate: options: [] isImperative: false artifactId: "rewrite-hibernate" + org.openrewrite.hibernate.MigrateToHibernate64: + name: "org.openrewrite.hibernate.MigrateToHibernate64" + description: "This recipe will apply changes commonly needed when migrating\ + \ to Hibernate 6.4.x." + docLink: "https://docs.openrewrite.org/recipes/hibernate/migratetohibernate64" + options: [] + isImperative: false + artifactId: "rewrite-hibernate" + org.openrewrite.hibernate.MigrateToHibernate65: + name: "org.openrewrite.hibernate.MigrateToHibernate65" + description: "This recipe will apply changes commonly needed when migrating\ + \ to Hibernate 6.5.x." + docLink: "https://docs.openrewrite.org/recipes/hibernate/migratetohibernate65" + options: [] + isImperative: false + artifactId: "rewrite-hibernate" org.openrewrite.hibernate.MigrateToHibernateDependencies60: name: "org.openrewrite.hibernate.MigrateToHibernateDependencies60" description: "This recipe will migrate any existing dependencies on Hibernate\ @@ -6550,7 +6595,7 @@ rewrite-hibernate: org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.3: name: "org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.3" description: "This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-62`\ - \ to `io.hypersistence:hypersistence-utils-hibernate-63`. " + \ to `io.hypersistence:hypersistence-utils-hibernate-63`." docLink: "https://docs.openrewrite.org/recipes/hibernate/migratetohypersistenceutilshibernate6/3" options: [] isImperative: false @@ -6564,6 +6609,14 @@ rewrite-hibernate: options: [] isImperative: true artifactId: "rewrite-hibernate" + org.openrewrite.hibernate.RemoveInvalidHibernateGeneratedValueAnnotation: + name: "org.openrewrite.hibernate.RemoveInvalidHibernateGeneratedValueAnnotation" + description: "Removes `@GeneratedValue` annotation from fields that are not\ + \ also annotated with `@Id`." + docLink: "https://docs.openrewrite.org/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation" + options: [] + isImperative: true + artifactId: "rewrite-hibernate" org.openrewrite.hibernate.ReplaceLazyCollectionAnnotation: name: "org.openrewrite.hibernate.ReplaceLazyCollectionAnnotation" description: "Adds the `FetchType` to jakarta annotations and deletes `@LazyCollection`." @@ -6597,7 +6650,7 @@ rewrite-hibernate: artifactId: "rewrite-hibernate" rewrite-jackson: artifactId: "rewrite-jackson" - version: "0.7.0" + version: "0.9.0" markdownRecipeDescriptors: org.openrewrite.java.jackson.CodehausClassesToFasterXML: name: "org.openrewrite.java.jackson.CodehausClassesToFasterXML" @@ -6642,9 +6695,26 @@ rewrite-jackson: options: [] isImperative: true artifactId: "rewrite-jackson" + org.openrewrite.java.jackson.codehaus.ReplaceSerializationConfigAnnotationIntrospector: + name: "org.openrewrite.java.jackson.codehaus.ReplaceSerializationConfigAnnotationIntrospector" + description: "Migrate serialization annotation processor to use the codehaus\ + \ config method." + docLink: "https://docs.openrewrite.org/recipes/java/jackson/codehaus/replaceserializationconfigannotationintrospector" + options: [] + isImperative: true + artifactId: "rewrite-jackson" + org.openrewrite.java.jackson.codehaus.TransferJsonSerializeArgumentsFromCodehausToFasterXML: + name: "org.openrewrite.java.jackson.codehaus.TransferJsonSerializeArgumentsFromCodehausToFasterXML" + description: "Transfer @JsonSerialize annotation arguments (using, contentUsing,\ + \ keyUsing, nullUsing) from Codehaus to FasterXML. If the argument was set\ + \ already, it will not be transferred." + docLink: "https://docs.openrewrite.org/recipes/java/jackson/codehaus/transferjsonserializeargumentsfromcodehaustofasterxml" + options: [] + isImperative: true + artifactId: "rewrite-jackson" rewrite-java: artifactId: "rewrite-java" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.java.AddApache2LicenseHeader: name: "org.openrewrite.java.AddApache2LicenseHeader" @@ -7017,6 +7087,16 @@ rewrite-java: required: true isImperative: true artifactId: "rewrite-java" + org.openrewrite.java.RemoveMethodInvocations: + name: "org.openrewrite.java.RemoveMethodInvocations" + description: "Remove method invocations if syntactically safe." + docLink: "https://docs.openrewrite.org/recipes/java/removemethodinvocations" + options: + - name: "methodPattern" + type: "String" + required: true + isImperative: true + artifactId: "rewrite-java" org.openrewrite.java.RemoveObjectsIsNull: name: "org.openrewrite.java.RemoveObjectsIsNull" description: "Replace calls to `Objects.isNull(..)` and `Objects.nonNull(..)`\ @@ -7755,7 +7835,7 @@ rewrite-java: artifactId: "rewrite-java" rewrite-java-dependencies: artifactId: "rewrite-java-dependencies" - version: "1.21.0" + version: "1.23.0" markdownRecipeDescriptors: org.openrewrite.csharp.dependencies.DependencyInsight: name: "org.openrewrite.csharp.dependencies.DependencyInsight" @@ -8018,6 +8098,9 @@ rewrite-java-dependencies: - name: "scope" type: "String" required: false + - name: "unlessUsing" + type: "String" + required: false isImperative: true artifactId: "rewrite-java-dependencies" org.openrewrite.java.dependencies.RemoveExpiredSuppressions: @@ -8137,7 +8220,7 @@ rewrite-java-dependencies: artifactId: "rewrite-java-dependencies" rewrite-java-security: artifactId: "rewrite-java-security" - version: "2.14.1" + version: "2.15.0" markdownRecipeDescriptors: org.openrewrite.java.security.FindTextDirectionChanges: name: "org.openrewrite.java.security.FindTextDirectionChanges" @@ -8624,8 +8707,16 @@ rewrite-java-security: artifactId: "rewrite-java-security" rewrite-jenkins: artifactId: "rewrite-jenkins" - version: "0.15.0" + version: "0.17.0" markdownRecipeDescriptors: + org.openrewrite.jenkins.AddJellyXmlDeclaration: + name: "org.openrewrite.jenkins.AddJellyXmlDeclaration" + description: "Ensure the XML declaration ``\ + \ is present in all `.jelly` files." + docLink: "https://docs.openrewrite.org/recipes/jenkins/addjellyxmldeclaration" + options: [] + isImperative: true + artifactId: "rewrite-jenkins" org.openrewrite.jenkins.AddPluginsBom: name: "org.openrewrite.jenkins.AddPluginsBom" description: "Adds [Jenkins plugins BOM](https://www.jenkins.io/doc/developer/plugin-development/dependency-management/#jenkins-plugin-bom)\ @@ -8781,7 +8872,7 @@ rewrite-jenkins: artifactId: "rewrite-jenkins" rewrite-json: artifactId: "rewrite-json" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.json.ChangeKey: name: "org.openrewrite.json.ChangeKey" @@ -8831,7 +8922,7 @@ rewrite-json: artifactId: "rewrite-json" rewrite-kotlin: artifactId: "rewrite-kotlin" - version: "1.21.2" + version: "1.22.1" markdownRecipeDescriptors: org.openrewrite.kotlin.FindKotlinSources: name: "org.openrewrite.kotlin.FindKotlinSources" @@ -8932,7 +9023,7 @@ rewrite-kotlin: artifactId: "rewrite-kotlin" rewrite-kubernetes: artifactId: "rewrite-kubernetes" - version: "2.9.2" + version: "2.10.1" markdownRecipeDescriptors: org.openrewrite.kubernetes.AddConfiguration: name: "org.openrewrite.kubernetes.AddConfiguration" @@ -8953,6 +9044,22 @@ rewrite-kubernetes: required: true isImperative: true artifactId: "rewrite-kubernetes" + org.openrewrite.kubernetes.ChangeApiVersion: + name: "org.openrewrite.kubernetes.ChangeApiVersion" + description: "Change the Kubernetes API version in a resource." + docLink: "https://docs.openrewrite.org/recipes/kubernetes/changeapiversion" + options: + - name: "fileMatcher" + type: "String" + required: false + - name: "newApiVersion" + type: "String" + required: true + - name: "oldApiVersion" + type: "String" + required: true + isImperative: true + artifactId: "rewrite-kubernetes" org.openrewrite.kubernetes.ImagePullPolicyAlways: name: "org.openrewrite.kubernetes.ImagePullPolicyAlways" description: "Ensures the latest version of a tag is deployed each time." @@ -9138,6 +9245,38 @@ rewrite-kubernetes: required: false isImperative: true artifactId: "rewrite-kubernetes" + org.openrewrite.kubernetes.migrate.MigrateToAPIv1_26: + name: "org.openrewrite.kubernetes.migrate.MigrateToAPIv1_26" + description: "This recipe will apply changes commonly needed when migrating\ + \ to Kubernetes API v1.26." + docLink: "https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_26" + options: [] + isImperative: false + artifactId: "rewrite-kubernetes" + org.openrewrite.kubernetes.migrate.MigrateToAPIv1_27: + name: "org.openrewrite.kubernetes.migrate.MigrateToAPIv1_27" + description: "This recipe will apply changes commonly needed when migrating\ + \ to Kubernetes API v1.27." + docLink: "https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_27" + options: [] + isImperative: false + artifactId: "rewrite-kubernetes" + org.openrewrite.kubernetes.migrate.MigrateToAPIv1_29: + name: "org.openrewrite.kubernetes.migrate.MigrateToAPIv1_29" + description: "This recipe will apply changes commonly needed when migrating\ + \ to Kubernetes API v1.29." + docLink: "https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_29" + options: [] + isImperative: false + artifactId: "rewrite-kubernetes" + org.openrewrite.kubernetes.migrate.MigrateToAPIv1_32: + name: "org.openrewrite.kubernetes.migrate.MigrateToAPIv1_32" + description: "This recipe will apply changes commonly needed when migrating\ + \ to Kubernetes API v1.32." + docLink: "https://docs.openrewrite.org/recipes/kubernetes/migrate/migratetoapiv1_32" + options: [] + isImperative: false + artifactId: "rewrite-kubernetes" org.openrewrite.kubernetes.rbac.AddRuleToRole: name: "org.openrewrite.kubernetes.rbac.AddRuleToRole" description: "Add RBAC rules to ClusterRoles or namespaced Roles." @@ -9397,12 +9536,12 @@ rewrite-kubernetes: artifactId: "rewrite-kubernetes" rewrite-liberty: artifactId: "rewrite-liberty" - version: "1.8.0" + version: "1.9.0" markdownRecipeDescriptors: org.openrewrite.java.liberty.MigrateFromWebSphereToLiberty: name: "org.openrewrite.java.liberty.MigrateFromWebSphereToLiberty" description: "Use this category of rules to identify code changes needed when\ - \ migrating from WebSphere Application Server traditional to Liberty." + \ migrating from WebSphere Application Server traditional to Liberty." docLink: "https://docs.openrewrite.org/recipes/java/liberty/migratefromwebspheretoliberty" options: [] isImperative: false @@ -9433,7 +9572,7 @@ rewrite-liberty: name: "org.openrewrite.java.liberty.WebSphereUnavailableSSOMethods" description: "This recipe replaces `LTPACookieFromSSOToken()` with `getSSOCookieFromSSOToken`\ \ and `revokeSSOCookies` with `logout`. The two methods are deprecated in\ - \ traditional WebSphere Application Server Version 8.5 and might be removed\ + \ traditional WebSphere Application Server Version 8.5 and might be removed\ \ in a future release. They are not available on Liberty." docLink: "https://docs.openrewrite.org/recipes/java/liberty/websphereunavailablessomethods" options: [] @@ -9489,7 +9628,7 @@ rewrite-liberty: artifactId: "rewrite-liberty" rewrite-logging-frameworks: artifactId: "rewrite-logging-frameworks" - version: "2.15.1" + version: "2.16.0" markdownRecipeDescriptors: org.openrewrite.java.logging.ChangeLombokLogAnnotation: name: "org.openrewrite.java.logging.ChangeLombokLogAnnotation" @@ -10325,7 +10464,7 @@ rewrite-logging-frameworks: artifactId: "rewrite-logging-frameworks" rewrite-maven: artifactId: "rewrite-maven" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.maven.AddCommentToMavenDependency: name: "org.openrewrite.maven.AddCommentToMavenDependency" @@ -11117,6 +11256,17 @@ rewrite-maven: required: true isImperative: true artifactId: "rewrite-maven" + org.openrewrite.maven.RemoveUnusedProperties: + name: "org.openrewrite.maven.RemoveUnusedProperties" + description: "Detect and remove Maven property declarations which do not have\ + \ any usage within the project." + docLink: "https://docs.openrewrite.org/recipes/maven/removeunusedproperties" + options: + - name: "propertyPattern" + type: "String" + required: false + isImperative: true + artifactId: "rewrite-maven" org.openrewrite.maven.RenamePropertyKey: name: "org.openrewrite.maven.RenamePropertyKey" description: "Rename the specified Maven project property key leaving the value\ @@ -11198,6 +11348,9 @@ rewrite-maven: - name: "newVersion" type: "String" required: true + - name: "onlyExternal" + type: "Boolean" + required: false - name: "versionPattern" type: "String" required: false @@ -11504,7 +11657,7 @@ rewrite-maven: artifactId: "rewrite-maven" rewrite-micrometer: artifactId: "rewrite-micrometer" - version: "0.9.1" + version: "0.10.1" markdownRecipeDescriptors: org.openrewrite.micrometer.TimerToObservation: name: "org.openrewrite.micrometer.TimerToObservation" @@ -11563,7 +11716,7 @@ rewrite-micrometer: artifactId: "rewrite-micrometer" rewrite-micronaut: artifactId: "rewrite-micronaut" - version: "2.11.0" + version: "2.12.0" markdownRecipeDescriptors: org.openrewrite.java.micronaut.AddAnnotationProcessorPath: name: "org.openrewrite.java.micronaut.AddAnnotationProcessorPath" @@ -11907,7 +12060,7 @@ rewrite-micronaut: artifactId: "rewrite-micronaut" rewrite-migrate-java: artifactId: "rewrite-migrate-java" - version: "2.28.0" + version: "2.29.0" markdownRecipeDescriptors: org.openrewrite.java.jspecify.MigrateFromJakartaAnnotationApi: name: "org.openrewrite.java.jspecify.MigrateFromJakartaAnnotationApi" @@ -14053,6 +14206,14 @@ rewrite-migrate-java: options: [] isImperative: false artifactId: "rewrite-migrate-java" + org.openrewrite.java.migrate.joda.JodaTimeRecipe: + name: "org.openrewrite.java.migrate.joda.JodaTimeRecipe" + description: "Prefer the Java standard library over third-party usage of Joda\ + \ Time." + docLink: "https://docs.openrewrite.org/recipes/java/migrate/joda/jodatimerecipe" + options: [] + isImperative: true + artifactId: "rewrite-migrate-java" org.openrewrite.java.migrate.lang.JavaLangAPIs: name: "org.openrewrite.java.migrate.lang.JavaLangAPIs" description: "Certain Java lang APIs have become deprecated and their usages\ @@ -14689,7 +14850,7 @@ rewrite-migrate-java: artifactId: "rewrite-migrate-java" rewrite-nodejs: artifactId: "rewrite-nodejs" - version: "0.11.1" + version: "0.12.2" markdownRecipeDescriptors: org.openrewrite.nodejs.DependencyVulnerabilityCheck: name: "org.openrewrite.nodejs.DependencyVulnerabilityCheck" @@ -14838,7 +14999,7 @@ rewrite-nodejs: artifactId: "rewrite-nodejs" rewrite-okhttp: artifactId: "rewrite-okhttp" - version: "0.4.2" + version: "0.5.1" markdownRecipeDescriptors: org.openrewrite.okhttp.ReorderRequestBodyCreateArguments: name: "org.openrewrite.okhttp.ReorderRequestBodyCreateArguments" @@ -14895,7 +15056,7 @@ rewrite-okhttp: artifactId: "rewrite-okhttp" rewrite-openapi: artifactId: "rewrite-openapi" - version: "0.8.1" + version: "0.9.1" markdownRecipeDescriptors: org.openrewrite.openapi.swagger.ConvertApiResponseCodesToStrings: name: "org.openrewrite.openapi.swagger.ConvertApiResponseCodesToStrings" @@ -14978,7 +15139,7 @@ rewrite-openapi: artifactId: "rewrite-openapi" rewrite-properties: artifactId: "rewrite-properties" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.properties.AddProperty: name: "org.openrewrite.properties.AddProperty" @@ -15086,7 +15247,7 @@ rewrite-properties: artifactId: "rewrite-properties" rewrite-quarkus: artifactId: "rewrite-quarkus" - version: "2.9.2" + version: "2.10.0" markdownRecipeDescriptors: org.openrewrite.quarkus.AddQuarkusProperty: name: "org.openrewrite.quarkus.AddQuarkusProperty" @@ -15342,7 +15503,7 @@ rewrite-quarkus: artifactId: "rewrite-quarkus" rewrite-reactive-streams: artifactId: "rewrite-reactive-streams" - version: "0.3.1" + version: "0.4.1" markdownRecipeDescriptors: org.openrewrite.reactive.reactor.ReactorProcessorCacheToSinkRecipes: name: "org.openrewrite.reactive.reactor.ReactorProcessorCacheToSinkRecipes" @@ -15507,7 +15668,7 @@ rewrite-reactive-streams: artifactId: "rewrite-reactive-streams" rewrite-recommendations: artifactId: "rewrite-recommendations" - version: "1.12.0" + version: "1.13.0" markdownRecipeDescriptors: org.openrewrite.recipes.JavaRecipeBestPractices: name: "org.openrewrite.recipes.JavaRecipeBestPractices" @@ -15568,7 +15729,7 @@ rewrite-recommendations: artifactId: "rewrite-recommendations" rewrite-spring: artifactId: "rewrite-spring" - version: "5.22.0" + version: "5.23.0" markdownRecipeDescriptors: org.openrewrite.gradle.spring.AddSpringDependencyManagementPlugin: name: "org.openrewrite.gradle.spring.AddSpringDependencyManagementPlugin" @@ -15597,14 +15758,6 @@ rewrite-spring: required: true isImperative: true artifactId: "rewrite-spring" - org.openrewrite.java.spring.BeanMethodsNotPublic: - name: "org.openrewrite.java.spring.BeanMethodsNotPublic" - description: "Remove public modifier from `@Bean` methods. They no longer have\ - \ to be public visibility to be usable by Spring." - docLink: "https://docs.openrewrite.org/recipes/java/spring/beanmethodsnotpublic" - options: [] - isImperative: true - artifactId: "rewrite-spring" org.openrewrite.java.spring.ChangeSpringPropertyKey: name: "org.openrewrite.java.spring.ChangeSpringPropertyKey" description: "Change spring application property keys existing in either Properties\ @@ -16598,6 +16751,13 @@ rewrite-spring: options: [] isImperative: false artifactId: "rewrite-spring" + org.openrewrite.java.spring.boot3.SpringBootProperties_3_4: + name: "org.openrewrite.java.spring.boot3.SpringBootProperties_3_4" + description: "Migrate properties found in `application.properties` and `application.yml`." + docLink: "https://docs.openrewrite.org/recipes/java/spring/boot3/springbootproperties_3_4" + options: [] + isImperative: false + artifactId: "rewrite-spring" org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0: name: "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0" description: "Migrate applications to the latest Spring Boot 3.0 release. This\ @@ -16691,6 +16851,15 @@ rewrite-spring: options: [] isImperative: false artifactId: "rewrite-spring" + org.openrewrite.java.spring.data.MigrateAuditorAwareToOptional: + name: "org.openrewrite.java.spring.data.MigrateAuditorAwareToOptional" + description: "As of Spring boot 2.0, the `AuditorAware.getCurrentAuditor` method\ + \ should return an `Optional`. This recipe will update the implementations\ + \ of this method to return an `Optional` using the `ofNullable`." + docLink: "https://docs.openrewrite.org/recipes/java/spring/data/migrateauditorawaretooptional" + options: [] + isImperative: true + artifactId: "rewrite-spring" org.openrewrite.java.spring.data.MigrateJpaSort: name: "org.openrewrite.java.spring.data.MigrateJpaSort" description: "Equivalent constructors in `JpaSort` were deprecated in Spring\ @@ -16780,6 +16949,21 @@ rewrite-spring: required: true isImperative: true artifactId: "rewrite-spring" + org.openrewrite.java.spring.framework.BeanMethodReturnNull: + name: "org.openrewrite.java.spring.framework.BeanMethodReturnNull" + description: "Make `@Bean` methods return `Object` instead of `void`." + docLink: "https://docs.openrewrite.org/recipes/java/spring/framework/beanmethodreturnnull" + options: [] + isImperative: true + artifactId: "rewrite-spring" + org.openrewrite.java.spring.framework.BeanMethodsNotPublic: + name: "org.openrewrite.java.spring.framework.BeanMethodsNotPublic" + description: "Remove public modifier from `@Bean` methods. They no longer have\ + \ to be public visibility to be usable by Spring." + docLink: "https://docs.openrewrite.org/recipes/java/spring/framework/beanmethodsnotpublic" + options: [] + isImperative: true + artifactId: "rewrite-spring" org.openrewrite.java.spring.framework.EnvironmentAcceptsProfiles: name: "org.openrewrite.java.spring.framework.EnvironmentAcceptsProfiles" description: "`Environment#acceptsProfiles(String...)` was deprecated in Spring\ @@ -17355,7 +17539,7 @@ rewrite-spring: artifactId: "rewrite-spring" rewrite-sql: artifactId: "rewrite-sql" - version: "1.10.2" + version: "1.11.1" markdownRecipeDescriptors: org.openrewrite.sql.ChangeFunctionName: name: "org.openrewrite.sql.ChangeFunctionName" @@ -17412,7 +17596,7 @@ rewrite-sql: artifactId: "rewrite-sql" rewrite-static-analysis: artifactId: "rewrite-static-analysis" - version: "1.19.0" + version: "1.20.0" markdownRecipeDescriptors: org.openrewrite.staticanalysis.AddSerialAnnotationToSerialVersionUID: name: "org.openrewrite.staticanalysis.AddSerialAnnotationToSerialVersionUID" @@ -17432,6 +17616,19 @@ rewrite-static-analysis: options: [] isImperative: true artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.AnnotateNullableMethods: + name: "org.openrewrite.staticanalysis.AnnotateNullableMethods" + description: "Add the `@org.jspecify.annotation.Nullable` to non-private methods\ + \ that may return `null`. This recipe scans for methods that do not already\ + \ have a `@Nullable` annotation and checks their return statements for potential\ + \ null values. It also identifies known methods from standard libraries that\ + \ may return null, such as methods from `Map`, `Queue`, `Deque`, `NavigableSet`,\ + \ and `Spliterator`. The return of streams, or lambdas are not taken into\ + \ account." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/annotatenullablemethods" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" org.openrewrite.staticanalysis.AtomicPrimitiveEqualsUsesGet: name: "org.openrewrite.staticanalysis.AtomicPrimitiveEqualsUsesGet" description: "`AtomicBoolean#equals(Object)`, `AtomicInteger#equals(Object)`\ @@ -17478,6 +17675,48 @@ rewrite-static-analysis: options: [] isImperative: true artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.BufferedWriterCreationRecipes: + name: "org.openrewrite.staticanalysis.BufferedWriterCreationRecipes" + description: "The code `new BufferedWriter(new FileWriter(f))` creates a `BufferedWriter`\ + \ that does not close the underlying `FileWriter` when it is closed. This\ + \ can lead to file descriptor leaks as per [CWE-755](https://cwe.mitre.org/data/definitions/755.html).\ + \ Use `Files.newBufferedWriter` to create a `BufferedWriter` that closes the\ + \ underlying file descriptor when it is closed." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipes" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithFileAndBooleanArgumentsRecipe: + name: "org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithFileAndBooleanArgumentsRecipe" + description: "Convert `new BufferedWriter(new FileWriter(f, b))` to `Files.newBufferedWriter(f.toPath(),\ + \ b ? StandardOpenOption.APPEND : StandardOpenOption.CREATE)`." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithfileandbooleanargumentsrecipe" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithFileArgumentRecipe: + name: "org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithFileArgumentRecipe" + description: "Convert `new BufferedWriter(new FileWriter(f))` to `Files.newBufferedWriter(f.toPath())`." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithfileargumentrecipe" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithStringAndBooleanArgumentsRecipe: + name: "org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithStringAndBooleanArgumentsRecipe" + description: "Convert `new BufferedWriter(new FileWriter(s, b))` to `Files.newBufferedWriter(new\ + \ java.io.File(s).toPath(), b ? StandardOpenOption.APPEND : StandardOpenOption.CREATE)`." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithstringandbooleanargumentsrecipe" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithStringArgumentRecipe: + name: "org.openrewrite.staticanalysis.BufferedWriterCreationRecipes$BufferedWriterFromNewFileWriterWithStringArgumentRecipe" + description: "Convert `new BufferedWriter(new FileWriter(s))` to `Files.newBufferedWriter(new\ + \ java.io.File(s).toPath())`." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/bufferedwritercreationrecipesusdbufferedwriterfromnewfilewriterwithstringargumentrecipe" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" org.openrewrite.staticanalysis.CaseInsensitiveComparisonsDoNotChangeCase: name: "org.openrewrite.staticanalysis.CaseInsensitiveComparisonsDoNotChangeCase" description: "Remove `String#toLowerCase()` or `String#toUpperCase()` from `String#equalsIgnoreCase(..)`\ @@ -18218,6 +18457,14 @@ rewrite-static-analysis: options: [] isImperative: false artifactId: "rewrite-static-analysis" + org.openrewrite.staticanalysis.ReplaceClassIsInstanceWithInstanceof: + name: "org.openrewrite.staticanalysis.ReplaceClassIsInstanceWithInstanceof" + description: "There should be no `A.class.isInstance(a)`, it should be replaced\ + \ by `a instanceof A`." + docLink: "https://docs.openrewrite.org/recipes/staticanalysis/replaceclassisinstancewithinstanceof" + options: [] + isImperative: true + artifactId: "rewrite-static-analysis" org.openrewrite.staticanalysis.ReplaceCollectionToArrayArgWithEmptyArray: name: "org.openrewrite.staticanalysis.ReplaceCollectionToArrayArgWithEmptyArray" description: "Changes new array creation with `Collection#toArray(T[])` to use\ @@ -18686,7 +18933,7 @@ rewrite-static-analysis: artifactId: "rewrite-static-analysis" rewrite-struts: artifactId: "rewrite-struts" - version: "0.7.2" + version: "0.7.4" markdownRecipeDescriptors: org.openrewrite.java.struts.MigrateStrutsDtd: name: "org.openrewrite.java.struts.MigrateStrutsDtd" @@ -18752,7 +18999,7 @@ rewrite-struts: artifactId: "rewrite-struts" rewrite-terraform: artifactId: "rewrite-terraform" - version: "2.4.2" + version: "2.5.1" markdownRecipeDescriptors: org.openrewrite.terraform.AddConfiguration: name: "org.openrewrite.terraform.AddConfiguration" @@ -19645,7 +19892,7 @@ rewrite-terraform: artifactId: "rewrite-terraform" rewrite-testing-frameworks: artifactId: "rewrite-testing-frameworks" - version: "2.21.0" + version: "2.22.0" markdownRecipeDescriptors: org.openrewrite.java.testing.archunit.ArchUnit0to1Migration: name: "org.openrewrite.java.testing.archunit.ArchUnit0to1Migration" @@ -19701,6 +19948,13 @@ rewrite-testing-frameworks: options: [] isImperative: true artifactId: "rewrite-testing-frameworks" + org.openrewrite.java.testing.assertj.JUnitAssertInstanceOfToAssertThat: + name: "org.openrewrite.java.testing.assertj.JUnitAssertInstanceOfToAssertThat" + description: "Convert JUnit-style `assertInstanceOf()` to AssertJ's `assertThat().isInstanceOf()`." + docLink: "https://docs.openrewrite.org/recipes/java/testing/assertj/junitassertinstanceoftoassertthat" + options: [] + isImperative: true + artifactId: "rewrite-testing-frameworks" org.openrewrite.java.testing.assertj.JUnitAssertNotEqualsToAssertThat: name: "org.openrewrite.java.testing.assertj.JUnitAssertNotEqualsToAssertThat" description: "Convert JUnit-style `assertNotEquals()` to AssertJ's `assertThat().isNotEqualTo()`." @@ -19755,7 +20009,8 @@ rewrite-testing-frameworks: name: "org.openrewrite.java.testing.assertj.JUnitToAssertj" description: "AssertJ provides a rich set of assertions, truly helpful error\ \ messages, improves test code readability. Converts assertions from `org.junit.jupiter.api.Assertions`\ - \ to `org.assertj.core.api.Assertions`." + \ to `org.assertj.core.api.Assertions`. Will convert JUnit 4 to JUnit Jupiter\ + \ if necessary to match and modify assertions." docLink: "https://docs.openrewrite.org/recipes/java/testing/assertj/junittoassertj" options: [] isImperative: false @@ -19976,6 +20231,23 @@ rewrite-testing-frameworks: options: [] isImperative: false artifactId: "rewrite-testing-frameworks" + org.openrewrite.java.testing.dbrider.ExecutionListenerToDbRiderAnnotation: + name: "org.openrewrite.java.testing.dbrider.ExecutionListenerToDbRiderAnnotation" + description: "Migrate the `DBRiderTestExecutionListener` to the `@DBRider` annotation.\ + \ This recipe is useful when migrating from JUnit 4 `dbrider-spring` to JUnit\ + \ 5 `dbrider-junit5`." + docLink: "https://docs.openrewrite.org/recipes/java/testing/dbrider/executionlistenertodbriderannotation" + options: [] + isImperative: true + artifactId: "rewrite-testing-frameworks" + org.openrewrite.java.testing.dbrider.MigrateDbRiderSpringToDbRiderJUnit5: + name: "org.openrewrite.java.testing.dbrider.MigrateDbRiderSpringToDbRiderJUnit5" + description: "This recipe will migrate the necessary dependencies and annotations\ + \ from DbRider with JUnit4 to JUnit5 in a Spring application." + docLink: "https://docs.openrewrite.org/recipes/java/testing/dbrider/migratedbriderspringtodbriderjunit5" + options: [] + isImperative: false + artifactId: "rewrite-testing-frameworks" org.openrewrite.java.testing.hamcrest.AddHamcrestIfUsed: name: "org.openrewrite.java.testing.hamcrest.AddHamcrestIfUsed" description: "JUnit Jupiter does not include hamcrest as a transitive dependency.\ @@ -20065,6 +20337,14 @@ rewrite-testing-frameworks: options: [] isImperative: true artifactId: "rewrite-testing-frameworks" + org.openrewrite.java.testing.jmockit.JMockitMockUpToMockito: + name: "org.openrewrite.java.testing.jmockit.JMockitMockUpToMockito" + description: "Rewrites JMockit `MockUp` blocks to Mockito statements. This recipe\ + \ will not rewrite private methods in MockUp." + docLink: "https://docs.openrewrite.org/recipes/java/testing/jmockit/jmockitmockuptomockito" + options: [] + isImperative: true + artifactId: "rewrite-testing-frameworks" org.openrewrite.java.testing.jmockit.JMockitToMockito: name: "org.openrewrite.java.testing.jmockit.JMockitToMockito" description: "This recipe will apply changes commonly needed when migrating\ @@ -20473,6 +20753,13 @@ rewrite-testing-frameworks: options: [] isImperative: false artifactId: "rewrite-testing-frameworks" + org.openrewrite.java.testing.mockito.Mockito4to5Only: + name: "org.openrewrite.java.testing.mockito.Mockito4to5Only" + description: "Upgrade Mockito from 4.x to 5.x. Does not include 1.x to 4.x migration." + docLink: "https://docs.openrewrite.org/recipes/java/testing/mockito/mockito4to5only" + options: [] + isImperative: false + artifactId: "rewrite-testing-frameworks" org.openrewrite.java.testing.mockito.MockitoBestPractices: name: "org.openrewrite.java.testing.mockito.MockitoBestPractices" description: "Applies best practices for Mockito tests." @@ -20512,16 +20799,6 @@ rewrite-testing-frameworks: options: [] isImperative: false artifactId: "rewrite-testing-frameworks" - org.openrewrite.java.testing.mockito.RetainStrictnessWarn: - name: "org.openrewrite.java.testing.mockito.RetainStrictnessWarn" - description: "Migrating from JUnit 4 to 5 [changes the default strictness](https://stackoverflow.com/a/53234137/53444)\ - \ of the mocks from `WARN` to `STRICT_STUBS`. To prevent tests from failing\ - \ we restore the original behavior by adding `@MockitoSettings(strictness\ - \ = Strictness.WARN)`." - docLink: "https://docs.openrewrite.org/recipes/java/testing/mockito/retainstrictnesswarn" - options: [] - isImperative: true - artifactId: "rewrite-testing-frameworks" org.openrewrite.java.testing.mockito.SimplifyMockitoVerifyWhenGiven: name: "org.openrewrite.java.testing.mockito.SimplifyMockitoVerifyWhenGiven" description: "Fixes Sonar issue `java:S6068`: Call to Mockito method \"verify\"\ @@ -20530,6 +20807,14 @@ rewrite-testing-frameworks: options: [] isImperative: true artifactId: "rewrite-testing-frameworks" + org.openrewrite.java.testing.mockito.VerifyZeroToNoMoreInteractions: + name: "org.openrewrite.java.testing.mockito.VerifyZeroToNoMoreInteractions" + description: "Replaces `verifyZeroInteractions()` with `verifyNoMoreInteractions()`\ + \ in Mockito tests when migration when using a Mockito version < 3.x." + docLink: "https://docs.openrewrite.org/recipes/java/testing/mockito/verifyzerotonomoreinteractions" + options: [] + isImperative: true + artifactId: "rewrite-testing-frameworks" org.openrewrite.java.testing.testcontainers.ExplicitContainerImage: name: "org.openrewrite.java.testing.testcontainers.ExplicitContainerImage" description: "Set the image to use for a container explicitly if unset, rather\ @@ -20572,7 +20857,7 @@ rewrite-testing-frameworks: artifactId: "rewrite-testing-frameworks" rewrite-third-party: artifactId: "rewrite-third-party" - version: "0.10.1" + version: "0.11.1" markdownRecipeDescriptors: ai.timefold.solver.migration.ChangeVersion: name: "ai.timefold.solver.migration.ChangeVersion" @@ -23739,6 +24024,19 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$NameContentEqualsRecipe: + name: "tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$NameContentEqualsRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class NameContentEquals {\n \n @BeforeTemplate\n boolean\ + \ before(Name name, CharSequence string) {\n return name.toString().equals(string.toString());\n\ + \ }\n \n @BeforeTemplate\n boolean before(Name name, String string)\ + \ {\n return name.toString().equals(string);\n }\n \n @AfterTemplate\n\ + \ boolean after(Name name, CharSequence string) {\n return name.contentEquals(string);\n\ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipesusdnamecontentequalsrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.DoubleStreamRulesRecipes: name: "tech.picnic.errorprone.refasterrules.DoubleStreamRulesRecipes" description: "Refaster template recipes for `tech.picnic.errorprone.refasterrules.DoubleStreamRules`.\ @@ -23925,16 +24223,32 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.FileRulesRecipes$FilesCreateTempFileInCustomDirectoryToFileRecipe: + name: "tech.picnic.errorprone.refasterrules.FileRulesRecipes$FilesCreateTempFileInCustomDirectoryToFileRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class FilesCreateTempFileInCustomDirectoryToFile {\n \n \ + \ @BeforeTemplate\n File before(File directory, String prefix, String\ + \ suffix) throws IOException {\n return File.createTempFile(prefix,\ + \ suffix, directory);\n }\n \n @AfterTemplate\n File after(File\ + \ directory, String prefix, String suffix) throws IOException {\n return\ + \ Files.createTempFile(directory.toPath(), prefix, suffix).toFile();\n \ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdfilescreatetempfileincustomdirectorytofilerecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.FileRulesRecipes$FilesCreateTempFileToFileRecipe: name: "tech.picnic.errorprone.refasterrules.FileRulesRecipes$FilesCreateTempFileToFileRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ static final class FilesCreateTempFileToFile {\n \n @BeforeTemplate\n\ - \ @SuppressWarnings(value = \"java:S5443\")\n File before(String prefix,\ - \ String suffix) throws IOException {\n return Refaster.anyOf(File.createTempFile(prefix,\ - \ suffix), File.createTempFile(prefix, suffix, null));\n }\n \n @AfterTemplate\n\ - \ @SuppressWarnings(value = \"java:S5443\")\n File after(String prefix,\ - \ String suffix) throws IOException {\n return Files.createTempFile(prefix,\ - \ suffix).toFile();\n }\n}\n```\n." + \ @SuppressWarnings(value = {\"FilesCreateTempFileInCustomDirectoryToFile\"\ + , \"java:S5443\", \"key-to-resolve-AnnotationUseStyle-and-TrailingComment-check-conflict\"\ + })\n File before(String prefix, String suffix) throws IOException {\n \ + \ return Refaster.anyOf(File.createTempFile(prefix, suffix), File.createTempFile(prefix,\ + \ suffix, null));\n }\n \n @AfterTemplate\n @SuppressWarnings(value\ + \ = \"java:S5443\")\n File after(String prefix, String suffix) throws IOException\ + \ {\n return Files.createTempFile(prefix, suffix).toFile();\n }\n\ + }\n```\n." docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdfilescreatetempfiletofilerecipe" options: [] isImperative: true @@ -23962,6 +24276,26 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathInstanceRecipe: + name: "tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathInstanceRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class PathInstance {\n \n @BeforeTemplate\n Path before(Path\ + \ path) {\n return path.toFile().toPath();\n }\n \n @AfterTemplate\n\ + \ Path after(Path path) {\n return path;\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdpathinstancerecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathOfUriRecipe: + name: "tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathOfUriRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class PathOfUri {\n \n @BeforeTemplate\n Path before(URI\ + \ uri) {\n return Paths.get(uri);\n }\n \n @AfterTemplate\n\ + \ Path after(URI uri) {\n return Path.of(uri);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/filerulesrecipesusdpathofurirecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.InputStreamRulesRecipes: name: "tech.picnic.errorprone.refasterrules.InputStreamRulesRecipes" description: "Refaster template recipes for `tech.picnic.errorprone.refasterrules.InputStreamRules`.\ @@ -24579,6 +24913,75 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes: + name: "tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes" + description: "Refaster template recipes for `tech.picnic.errorprone.refasterrules.MicrometerRules`.\ + \ [Source](https://error-prone.picnic.tech/refasterrules/MicrometerRules)." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipes" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf1Recipe: + name: "tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf1Recipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class TagsOf1 {\n \n @BeforeTemplate\n ImmutableCollection\ + \ before(Tag tag) {\n return Refaster.anyOf(ImmutableSet.of(tag), ImmutableList.of(tag));\n\ + \ }\n \n @AfterTemplate\n Iterable after(Tag tag) {\n \ + \ return Tags.of(tag);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof1recipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf2Recipe: + name: "tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf2Recipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class TagsOf2 {\n \n @BeforeTemplate\n ImmutableCollection\ + \ before(Tag tag1, Tag tag2) {\n return Refaster.anyOf(ImmutableSet.of(tag1,\ + \ tag2), ImmutableList.of(tag1, tag2));\n }\n \n @AfterTemplate\n\ + \ Iterable after(Tag tag1, Tag tag2) {\n return Tags.of(tag1,\ + \ tag2);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof2recipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf3Recipe: + name: "tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf3Recipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class TagsOf3 {\n \n @BeforeTemplate\n ImmutableCollection\ + \ before(Tag tag1, Tag tag2, Tag tag3) {\n return Refaster.anyOf(ImmutableSet.of(tag1,\ + \ tag2, tag3), ImmutableList.of(tag1, tag2, tag3));\n }\n \n @AfterTemplate\n\ + \ Iterable after(Tag tag1, Tag tag2, Tag tag3) {\n return Tags.of(tag1,\ + \ tag2, tag3);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof3recipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf4Recipe: + name: "tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf4Recipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class TagsOf4 {\n \n @BeforeTemplate\n ImmutableCollection\ + \ before(Tag tag1, Tag tag2, Tag tag3, Tag tag4) {\n return Refaster.anyOf(ImmutableSet.of(tag1,\ + \ tag2, tag3, tag4), ImmutableList.of(tag1, tag2, tag3, tag4));\n }\n \ + \ \n @AfterTemplate\n Iterable after(Tag tag1, Tag tag2, Tag\ + \ tag3, Tag tag4) {\n return Tags.of(tag1, tag2, tag3, tag4);\n \ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof4recipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf5Recipe: + name: "tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes$TagsOf5Recipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class TagsOf5 {\n \n @BeforeTemplate\n ImmutableCollection\ + \ before(Tag tag1, Tag tag2, Tag tag3, Tag tag4, Tag tag5) {\n return\ + \ Refaster.anyOf(ImmutableSet.of(tag1, tag2, tag3, tag4, tag5), ImmutableList.of(tag1,\ + \ tag2, tag3, tag4, tag5));\n }\n \n @AfterTemplate\n Iterable\ + \ after(Tag tag1, Tag tag2, Tag tag3, Tag tag4, Tag tag5) {\n return\ + \ Tags.of(tag1, tag2, tag3, tag4, tag5);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/micrometerrulesrecipesusdtagsof5recipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.MockitoRulesRecipes: name: "tech.picnic.errorprone.refasterrules.MockitoRulesRecipes" description: "Refaster template recipes for `tech.picnic.errorprone.refasterrules.MockitoRules`.\ @@ -24678,17 +25081,6 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$BooleanCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$BooleanCompareRecipe" - description: "Recipe created for the following Refaster template:\n```java\n\ - static final class BooleanCompare {\n \n @BeforeTemplate\n int before(boolean\ - \ a, boolean b) {\n return Booleans.compare(a, b);\n }\n \n \ - \ @AfterTemplate\n int after(boolean a, boolean b) {\n return\ - \ Boolean.compare(a, b);\n }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdbooleancomparerecipe" - options: [] - isImperative: true - artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$BooleanHashCodeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$BooleanHashCodeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24721,17 +25113,6 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$CharacterCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$CharacterCompareRecipe" - description: "Recipe created for the following Refaster template:\n```java\n\ - static final class CharacterCompare {\n \n @BeforeTemplate\n int\ - \ before(char a, char b) {\n return Chars.compare(a, b);\n }\n \ - \ \n @AfterTemplate\n int after(char a, char b) {\n return\ - \ Character.compare(a, b);\n }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdcharactercomparerecipe" - options: [] - isImperative: true - artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$CharacterHashCodeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$CharacterHashCodeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24753,17 +25134,6 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$DoubleCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$DoubleCompareRecipe" - description: "Recipe created for the following Refaster template:\n```java\n\ - static final class DoubleCompare {\n \n @BeforeTemplate\n int before(double\ - \ a, double b) {\n return Doubles.compare(a, b);\n }\n \n \ - \ @AfterTemplate\n int after(double a, double b) {\n return Double.compare(a,\ - \ b);\n }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusddoublecomparerecipe" - options: [] - isImperative: true - artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$DoubleHashCodeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$DoubleHashCodeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24796,17 +25166,6 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$FloatCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$FloatCompareRecipe" - description: "Recipe created for the following Refaster template:\n```java\n\ - static final class FloatCompare {\n \n @BeforeTemplate\n int before(float\ - \ a, float b) {\n return Floats.compare(a, b);\n }\n \n @AfterTemplate\n\ - \ int after(float a, float b) {\n return Float.compare(a, b);\n\ - \ }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdfloatcomparerecipe" - options: [] - isImperative: true - artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$FloatHashCodeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$FloatHashCodeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24862,14 +25221,25 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerCompareRecipe" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerCompareUnsignedRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerCompareUnsignedRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ - static final class IntegerCompare {\n \n @BeforeTemplate\n int before(int\ - \ a, int b) {\n return Ints.compare(a, b);\n }\n \n @AfterTemplate\n\ - \ int after(int a, int b) {\n return Integer.compare(a, b);\n \ - \ }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegercomparerecipe" + static final class IntegerCompareUnsigned {\n \n @BeforeTemplate\n \ + \ int before(int x, int y) {\n return UnsignedInts.compare(x, y);\n\ + \ }\n \n @AfterTemplate\n int after(int x, int y) {\n return\ + \ Integer.compareUnsigned(x, y);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegercompareunsignedrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerDivideUnsignedRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerDivideUnsignedRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class IntegerDivideUnsigned {\n \n @BeforeTemplate\n \ + \ int before(int x, int y) {\n return UnsignedInts.divide(x, y);\n\ + \ }\n \n @AfterTemplate\n int after(int x, int y) {\n return\ + \ Integer.divideUnsigned(x, y);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerdivideunsignedrecipe" options: [] isImperative: true artifactId: "rewrite-third-party" @@ -24884,6 +25254,41 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerParseUnsignedIntRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerParseUnsignedIntRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class IntegerParseUnsignedInt {\n \n @BeforeTemplate\n\ + \ int before(String string) {\n return Refaster.anyOf(UnsignedInts.parseUnsignedInt(string),\ + \ Integer.parseUnsignedInt(string, 10));\n }\n \n @AfterTemplate\n\ + \ int after(String string) {\n return Integer.parseUnsignedInt(string);\n\ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerparseunsignedintrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerParseUnsignedIntWithRadixRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerParseUnsignedIntWithRadixRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class IntegerParseUnsignedIntWithRadix {\n \n @BeforeTemplate\n\ + \ int before(String string, int radix) {\n return UnsignedInts.parseUnsignedInt(string,\ + \ radix);\n }\n \n @AfterTemplate\n int after(String string, int\ + \ radix) {\n return Integer.parseUnsignedInt(string, radix);\n }\n\ + }\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerparseunsignedintwithradixrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerRemainderUnsignedRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerRemainderUnsignedRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class IntegerRemainderUnsigned {\n \n @BeforeTemplate\n\ + \ int before(int x, int y) {\n return UnsignedInts.remainder(x,\ + \ y);\n }\n \n @AfterTemplate\n int after(int x, int y) {\n \ + \ return Integer.remainderUnsigned(x, y);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegerremainderunsignedrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerSignumIsNegativeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerSignumIsNegativeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24908,6 +25313,29 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerToUnsignedStringRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerToUnsignedStringRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class IntegerToUnsignedString {\n \n @BeforeTemplate\n\ + \ String before(int i) {\n return Refaster.anyOf(UnsignedInts.toString(i),\ + \ Integer.toUnsignedString(i, 10));\n }\n \n @AfterTemplate\n \ + \ String after(int i) {\n return Integer.toUnsignedString(i);\n \ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegertounsignedstringrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerToUnsignedStringWithRadixRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$IntegerToUnsignedStringWithRadixRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class IntegerToUnsignedStringWithRadix {\n \n @BeforeTemplate\n\ + \ String before(int i, int radix) {\n return UnsignedInts.toString(i,\ + \ radix);\n }\n \n @AfterTemplate\n String after(int i, int radix)\ + \ {\n return Integer.toUnsignedString(i, radix);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdintegertounsignedstringwithradixrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LessThanOrEqualToRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LessThanOrEqualToRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24940,14 +25368,25 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongCompareRecipe" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongCompareUnsignedRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongCompareUnsignedRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ - static final class LongCompare {\n \n @BeforeTemplate\n int before(long\ - \ a, long b) {\n return Longs.compare(a, b);\n }\n \n @AfterTemplate\n\ - \ int after(long a, long b) {\n return Long.compare(a, b);\n \ - \ }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongcomparerecipe" + static final class LongCompareUnsigned {\n \n @BeforeTemplate\n long\ + \ before(long x, long y) {\n return UnsignedLongs.compare(x, y);\n\ + \ }\n \n @AfterTemplate\n long after(long x, long y) {\n \ + \ return Long.compareUnsigned(x, y);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongcompareunsignedrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongDivideUnsignedRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongDivideUnsignedRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class LongDivideUnsigned {\n \n @BeforeTemplate\n long\ + \ before(long x, long y) {\n return UnsignedLongs.divide(x, y);\n \ + \ }\n \n @AfterTemplate\n long after(long x, long y) {\n \ + \ return Long.divideUnsigned(x, y);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongdivideunsignedrecipe" options: [] isImperative: true artifactId: "rewrite-third-party" @@ -24962,6 +25401,41 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongParseUnsignedLongRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongParseUnsignedLongRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class LongParseUnsignedLong {\n \n @BeforeTemplate\n \ + \ long before(String string) {\n return Refaster.anyOf(UnsignedLongs.parseUnsignedLong(string),\ + \ Long.parseUnsignedLong(string, 10));\n }\n \n @AfterTemplate\n\ + \ long after(String string) {\n return Long.parseUnsignedLong(string);\n\ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongparseunsignedlongrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongParseUnsignedLongWithRadixRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongParseUnsignedLongWithRadixRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class LongParseUnsignedLongWithRadix {\n \n @BeforeTemplate\n\ + \ long before(String string, int radix) {\n return UnsignedLongs.parseUnsignedLong(string,\ + \ radix);\n }\n \n @AfterTemplate\n long after(String string,\ + \ int radix) {\n return Long.parseUnsignedLong(string, radix);\n \ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongparseunsignedlongwithradixrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongRemainderUnsignedRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongRemainderUnsignedRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class LongRemainderUnsigned {\n \n @BeforeTemplate\n \ + \ long before(long x, long y) {\n return UnsignedLongs.remainder(x,\ + \ y);\n }\n \n @AfterTemplate\n long after(long x, long y) {\n\ + \ return Long.remainderUnsigned(x, y);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongremainderunsignedrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongSignumIsNegativeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongSignumIsNegativeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -24997,6 +25471,29 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongToUnsignedStringRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongToUnsignedStringRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class LongToUnsignedString {\n \n @BeforeTemplate\n \ + \ String before(long i) {\n return Refaster.anyOf(UnsignedLongs.toString(i),\ + \ Long.toUnsignedString(i, 10));\n }\n \n @AfterTemplate\n String\ + \ after(long i) {\n return Long.toUnsignedString(i);\n }\n}\n```\n\ + ." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongtounsignedstringrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongToUnsignedStringWithRadixRecipe: + name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$LongToUnsignedStringWithRadixRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class LongToUnsignedStringWithRadix {\n \n @BeforeTemplate\n\ + \ String before(long i, int radix) {\n return UnsignedLongs.toString(i,\ + \ radix);\n }\n \n @AfterTemplate\n String after(long i, int radix)\ + \ {\n return Long.toUnsignedString(i, radix);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdlongtounsignedstringwithradixrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortBytesRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortBytesRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -25007,17 +25504,6 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortCompareRecipe: - name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortCompareRecipe" - description: "Recipe created for the following Refaster template:\n```java\n\ - static final class ShortCompare {\n \n @BeforeTemplate\n int before(short\ - \ a, short b) {\n return Shorts.compare(a, b);\n }\n \n @AfterTemplate\n\ - \ int after(short a, short b) {\n return Short.compare(a, b);\n\ - \ }\n}\n```\n." - docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/primitiverulesrecipesusdshortcomparerecipe" - options: [] - isImperative: true - artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortHashCodeRecipe: name: "tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes$ShortHashCodeRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -25223,6 +25709,32 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringIndexOfChar {\n \n @BeforeTemplate\n @SuppressWarnings(value\ + \ = \"java:S4635\")\n int before(String string, int ch, int fromIndex)\ + \ {\n return string.substring(fromIndex).indexOf(ch);\n }\n \n\ + \ @AfterTemplate\n int after(String string, int ch, int fromIndex) {\n\ + \ return Math.max(-1, string.indexOf(ch, fromIndex) - fromIndex);\n\ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringindexofcharrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringIndexOfString {\n \n @BeforeTemplate\n @SuppressWarnings(value\ + \ = \"java:S4635\")\n int before(String string, String substring, int fromIndex)\ + \ {\n return string.substring(fromIndex).indexOf(substring);\n }\n\ + \ \n @AfterTemplate\n int after(String string, String substring,\ + \ int fromIndex) {\n return Math.max(-1, string.indexOf(substring,\ + \ fromIndex) - fromIndex);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringindexofstringrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIsEmptyRecipe: name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIsEmptyRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -25246,6 +25758,70 @@ rewrite-third-party: options: [] isImperative: true artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringLastIndexOfChar {\n \n @BeforeTemplate\n \ + \ @SuppressWarnings(value = \"java:S4635\")\n int before(String string,\ + \ int ch, int fromIndex) {\n return string.substring(fromIndex).lastIndexOf(ch);\n\ + \ }\n \n @AfterTemplate\n int after(String string, int ch, int\ + \ fromIndex) {\n return Math.max(-1, string.lastIndexOf(ch) - fromIndex);\n\ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofcharrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharWithIndexRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharWithIndexRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringLastIndexOfCharWithIndex {\n \n @BeforeTemplate\n\ + \ int before(String string, int ch, int fromIndex) {\n return string.substring(0,\ + \ fromIndex).lastIndexOf(ch);\n }\n \n @AfterTemplate\n int after(String\ + \ string, int ch, int fromIndex) {\n return string.lastIndexOf(ch,\ + \ fromIndex - 1);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofcharwithindexrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringLastIndexOfString {\n \n @BeforeTemplate\n\ + \ @SuppressWarnings(value = \"java:S4635\")\n int before(String string,\ + \ String substring, int fromIndex) {\n return string.substring(fromIndex).lastIndexOf(substring);\n\ + \ }\n \n @AfterTemplate\n int after(String string, String substring,\ + \ int fromIndex) {\n return Math.max(-1, string.lastIndexOf(substring)\ + \ - fromIndex);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofstringrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringWithIndexRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringWithIndexRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringLastIndexOfStringWithIndex {\n \n @BeforeTemplate\n\ + \ int before(String string, String substring, int fromIndex) {\n \ + \ return string.substring(0, fromIndex).lastIndexOf(substring);\n }\n\ + \ \n @AfterTemplate\n int after(String string, String substring,\ + \ int fromIndex) {\n return string.lastIndexOf(substring, fromIndex\ + \ - 1);\n }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringlastindexofstringwithindexrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringStartsWithRecipe: + name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringStartsWithRecipe" + description: "Recipe created for the following Refaster template:\n```java\n\ + static final class StringStartsWith {\n \n @BeforeTemplate\n @SuppressWarnings(value\ + \ = \"java:S4635\")\n boolean before(String string, String prefix, int\ + \ fromIndex) {\n return string.substring(fromIndex).startsWith(prefix);\n\ + \ }\n \n @AfterTemplate\n boolean after(String string, String\ + \ prefix, int fromIndex) {\n return string.startsWith(prefix, fromIndex);\n\ + \ }\n}\n```\n." + docLink: "https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipesusdstringstartswithrecipe" + options: [] + isImperative: true + artifactId: "rewrite-third-party" tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringValueOfRecipe: name: "tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringValueOfRecipe" description: "Recipe created for the following Refaster template:\n```java\n\ @@ -27454,7 +28030,7 @@ rewrite-third-party: artifactId: "rewrite-third-party" rewrite-xml: artifactId: "rewrite-xml" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.xml.AddCommentToXmlTag: name: "org.openrewrite.xml.AddCommentToXmlTag" @@ -27766,7 +28342,7 @@ rewrite-xml: artifactId: "rewrite-xml" rewrite-yaml: artifactId: "rewrite-yaml" - version: "8.38.0" + version: "8.40.2" markdownRecipeDescriptors: org.openrewrite.yaml.AppendToSequence: name: "org.openrewrite.yaml.AppendToSequence" @@ -28019,6 +28595,9 @@ rewrite-yaml: - name: "propertyKey" type: "String" required: true + - name: "propertyValue" + type: "String" + required: false - name: "relaxedBinding" type: "Boolean" required: false