8.42.0 release (2024-12-18)
Total recipe count: 2922
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.
New Recipes
- org.openrewrite.codemods.migrate.angular.v18: Upgrade to Angular v18
- org.openrewrite.codemods.migrate.angular.v19: Upgrade to Angular v19
- org.openrewrite.gitlab.AddStages: Add or Update the set of stages defined in
.gitlab-ci.yml. - org.openrewrite.gradle.AddJUnitPlatformLauncher: Add the JUnit Platform Launcher to the buildscript dependencies.
- org.openrewrite.gradle.RemoveRedundantDependencyVersions: Remove explicitly-specified dependency versions that are managed by a Gradle
platform/enforcedPlatform. - org.openrewrite.java.boot3.ReplaceMockBeanAndSpyBean: Replaces
@MockBeanand@SpyBeanannotations with@MockitoBeanand@MockitoSpyBean. - org.openrewrite.java.logging.log4j.LoggerSetLevelToConfiguratorRecipe: Converts
org.apache.log4j.Logger.setLeveltoorg.apache.logging.log4j.core.config.Configurator.setLevel. - org.openrewrite.java.migrate.IllegalArgumentExceptionToAlreadyConnectedException: Replace
IllegalArgumentExceptionwithAlreadyConnectedExceptionfor DatagramChannel.send() to ensure compatibility with Java 11+. - org.openrewrite.java.migrate.joda.NoJodaTime: Before Java 8, Java lacked a robust date and time library, leading to the widespread use of Joda-Time to fill this gap. With the release of Java 8, the
java.timepackage was introduced, incorporating most of Joda-Time's concepts. Features deemed too specialized or bulky forjava.timewere included in the ThreeTen-Extra library. This recipe migrates Joda-Time types tojava.timeandthreeten-extratypes. - org.openrewrite.java.migrate.lang.ExplicitRecordImport: Add explicit import for
Recordclasses when upgrading past Java 14+, to avoid conflicts withjava.lang.Record. - org.openrewrite.java.migrate.lombok.UseLombokGetter: Convert trivial getter methods to
@Getterannotations on their respective fields. - org.openrewrite.java.migrate.lombok.UseLombokSetter: Convert trivial setter methods to
@Setterannotations on their respective fields. - org.openrewrite.java.testing.easymock.EasyMockToMockito: This recipe will apply changes commonly needed when migrating from EasyMock to Mockito.
- org.openrewrite.java.testing.easymock.EasyMockVerifyToMockitoVerify: Replace
EasyMock.verify(dependency)with individualMockito.verify(dependency).method()calls based on expected methods. - org.openrewrite.java.testing.easymock.RemoveExtendsEasyMockSupport: Modify test classes by removing extends EasyMockSupport and replacing EasyMock methods with Mockito equivalents.
- org.openrewrite.java.testing.hamcrest.ConsistentHamcrestMatcherImports: Use consistent imports for Hamcrest matchers, and remove wrapping
is(Matcher)calls ahead of further changes. - org.openrewrite.java.testing.hamcrest.HamcrestInstanceOfToJUnit5: Migrate from Hamcrest
instanceOfandisAmatcher to JUnit5assertInstanceOfassertion. - org.openrewrite.java.testing.hamcrest.HamcrestMatcherToJUnit5: Migrate from Hamcrest
Matcherto JUnit 5 assertions. - org.openrewrite.java.testing.hamcrest.MigrateHamcrestToJUnit5: Migrate Hamcrest
assertThat(..)to JUnit JupiterAssertions. - org.openrewrite.java.testing.mockito.NoInitializationForInjectMock: Removes unnecessary initialization for fields annotated with
@InjectMocksin Mockito tests. - org.openrewrite.java.testing.mockito.RemoveTimesZeroAndOne: Remove
Mockito.times(0)andMockito.times(0)fromMockito.verify()calls. - org.openrewrite.java.testing.testng.TestNgAssertEqualsToAssertThat: Convert TestNG-style
assertEquals()to AssertJ'sassertThat().isEqualTo(). - org.openrewrite.java.testing.testng.TestNgAssertNotEqualsToAssertThat: Convert TestNG-style
assertNotEquals()to AssertJ'sassertThat().isNotEqualTo(). - org.openrewrite.java.testing.testng.TestNgToAssertj: Convert assertions from
org.testng.Asserttoorg.assertj.core.api.Assertions. - org.openrewrite.kubernetes.search.FindHarcodedIPAddresses: Find hardcoded IP address anywhere in text-based files.
- org.openrewrite.openapi.swagger.MigrateApiImplicitParamDataTypeClass: Migrate
@ApiImplicitParam(dataTypeClass=Foo.class)to@Parameter(schema=@Schema(implementation=Foo.class)). - org.openrewrite.reactive.reactor.ReactorBestPractices: This recipe applies best practices for using Reactor.
- org.openrewrite.staticanalysis.URLEqualsHashCodeRecipes: Uses of
equals()andhashCode()causejava.net.URLto make blocking internet connections. Instead, usejava.net.URI. - org.openrewrite.staticanalysis.URLEqualsHashCodeRecipes$URLEqualsRecipe: Uses of
equals()causejava.net.URLto make blocking internet connections. Instead, usejava.net.URI. - org.openrewrite.staticanalysis.URLEqualsHashCodeRecipes$URLHashCodeRecipe: Uses of
hashCode()causejava.net.URLto make blocking internet connections. Instead, usejava.net.URI.
Changed Recipes
- org.openrewrite.java.migrate.lang.StringFormatted was changed:
- Old Options:
None
- New Options:
addParentheses: { type: Boolean, required: false }
- Old Options:
- org.openrewrite.xml.ChangeTagValue was changed:
- Old Options:
elementName: { type: String, required: true }newValue: { type: String, required: true }oldValue: { type: String, required: false }
- New Options:
elementName: { type: String, required: true }newValue: { type: String, required: true }oldValue: { type: String, required: false }regex: { type: Boolean, required: false }
- Old Options:
- org.openrewrite.yaml.CommentOutProperty was changed:
- Old Options:
commentText: { type: String, required: true }propertyKey: { type: String, required: true }
- New Options:
commentOutProperty: { type: Boolean, required: false }commentText: { type: String, required: true }propertyKey: { type: String, required: true }
- Old Options: