8.33.4 release (2024-08-12)
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 Artifacts
- rewrite-feature-flags
- rewrite-reactive-streams
Removed Artifacts
- rewrite-launchdarkly
New Recipes
- org.openrewrite.featureflags.RemoveBooleanFlag: Replace method invocations for feature key with value, and simplify constant if branch execution.
- org.openrewrite.featureflags.ff4j.RemoveCheck: Replace
check()
invocations forfeatureKey
withreplacementValue
, and simplify constant if branch execution. - org.openrewrite.featureflags.ff4j.search.FindFeatureFlag: Find a FF4j feature flag.
- org.openrewrite.featureflags.launchdarkly.ChangeVariationDefault: Change the default value for
Variation
invocations for feature key. - org.openrewrite.featureflags.launchdarkly.MigrateUserToContext: Migrate from
LDUser
andLDUser.Builder
toLDContext
andContextBuilder
. - org.openrewrite.featureflags.launchdarkly.RemoveBoolVariation: Replace
boolVariation
invocations for feature key with value, and simplify constant if branch execution. - org.openrewrite.featureflags.launchdarkly.UpgradeLaunchDarkly6: This recipe will apply changes commonly needed when migrating to LaunchDarkly 6.x.
- org.openrewrite.featureflags.launchdarkly.UpgradeLaunchDarkly7: This recipe will apply changes commonly needed when migrating to LaunchDarkly 7.x.
- org.openrewrite.featureflags.launchdarkly.search.FindFeatureFlag: Find a LaunchDarkly feature flag.
- org.openrewrite.featureflags.openfeature.RemoveGetBooleanValue: Replace
getBooleanValue()
invocations forfeatureKey
withreplacementValue
, and simplify constant if branch execution. - org.openrewrite.featureflags.openfeature.search.FindFeatureFlag: Find an OpenFeature feature flag.
- org.openrewrite.featureflags.search.FindFeatureFlag: Find a feature flag matching method pattern.
- org.openrewrite.featureflags.unleash.RemoveIsEnabled: Replace
isEnabled()
invocations forfeatureKey
withreplacementValue
, and simplify constant if branch execution. - org.openrewrite.featureflags.unleash.search.FindFeatureFlag: Find an Unleash feature flag.
- org.openrewrite.java.dependencies.SoftwareBillOfMaterials: Produces a software bill of materials (SBOM) for a project. An SBOM is a complete list of all dependencies used in a project, including transitive dependencies. The produced SBOM is in the CycloneDX XML format. Supports Gradle and Maven. Places a file named sbom.xml adjacent to the Gradle or Maven build file.
- org.openrewrite.java.migrate.RemovedRuntimeTraceMethods: The
traceInstructions
andtraceMethodCalls
methods injava.lang.Runtime
were deprecated in Java SE 9 and are no longer available in Java SE 13 and later. The recipe removes the invocations of these methods since the method invocations do nothing functionally. - org.openrewrite.java.migrate.guava.NoGuavaMapsNewTreeMap: Prefer the Java standard library over third-party usage of Guava in simple cases like this.
- org.openrewrite.java.migrate.guava.NoGuavaPrimitiveAsList: Migrate from Guava
com.google.common.primitives.* asList(..)
toArrays.asList(..)
. - org.openrewrite.java.migrate.guava.NoGuavaRefasterRecipes: Recipes that migrate from Guava to Java, using Refaster style templates for cases beyond what declarative recipes can cover.
- org.openrewrite.java.migrate.guava.NoGuavaRefasterRecipes$PreconditionsCheckNotNullToObjectsRequireNonNullRecipe: Migrate from Guava
Preconditions.checkNotNull
to Java 8java.util.Objects.requireNonNull
. - org.openrewrite.java.migrate.guava.NoGuavaRefasterRecipes$StringValueOfStringRecipe: Migrate from
String.valueof(String)
toString
, mainly as a cleanup after other recipes. - org.openrewrite.java.search.ClasspathTypeCounts: Emit one data table row per source set in a project, with the number of types in the source set.
- org.openrewrite.java.spring.batch.MigrateStepBuilderFactory:
StepBuilderFactory
was deprecated in spring-batch 5.x. It is replaced byStepBuilder
. - org.openrewrite.java.spring.framework.UpgradeSpringFramework_6_1: Migrate applications to the latest Spring Framework 6.1 release.
- org.openrewrite.java.testing.assertj.SimplifyAssertJAssertion: Simplify AssertJ assertions by replacing them with more expressiove dedicated assertions.
- org.openrewrite.java.testing.assertj.SimplifyAssertJAssertions: Replace AssertJ assertions where a dedicated assertion is available for the same actual value.
- org.openrewrite.java.testing.cleanup.AssertLiteralBooleanToFailRecipe: Using fail is more direct and clear.
- org.openrewrite.micrometer.UpgradeMicrometer_1_13: Migrate applications to the latest Micrometer 1.13 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions as described in the Micrometer 1.13 migration guide.
- org.openrewrite.nodejs.DependencyVulnerabilityCheck: This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe only upgrades to the latest patch version. If a minor or major upgrade is required to reach the fixed version, this recipe will not make any changes. Vulnerability information comes from the GitHub Security Advisory Database, which aggregates vulnerability data from several public databases, including the National Vulnerability Database maintained by the United States government. Dependencies following Semantic Versioning will see their patch version updated where applicable.
- org.openrewrite.nodejs.search.DatabaseInteractionInsights: Discover which popular javascript database interaction libraries (Sequelize, TypeORM, Mongoose, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.FormHandlingInsights: Discover which popular javascript form handling libraries (Formik, React Hook Form, Yup, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.LintingFormattingInsights: Discover which popular javascript linting and formatting libraries (ESLint, Prettier, Stylelint, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.RealTimeCommunicationInsights: Discover which popular javascript real-time communication libraries (Socket.io, Ws, SockJS, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.SecurityInsights: Discover which popular javascript security libraries (Helmet, Cors, Bcrypt, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.ServerSideFrameworksInsights: Discover which popular javascript server-side frameworks (Express, Koa, Hapi, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.StateManagementInsights: Discover which popular javascript state management libraries (Redux, MobX, Vuex, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.TaskRunnersBuildToolsInsights: Discover which popular javascript task runners and build tools (Webpack, Parcel, Gulp, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.TestingInsights: Discover which popular javascript testing libraries (Jest, Mocha, Chai, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.UIInsights: Discover which popular javascript UI libraries (React, Vue.js, Angular, etc.) are being used in your projects.
- org.openrewrite.nodejs.search.UtilityInsights: Discover which popular javascript utility libraries (Lodash, Moment.js, Date-fns, etc.) are being used in your projects.
- org.openrewrite.reactive.reactor.ReactorProcessorCacheToSinkRecipes: As of 3.5 Processors are deprecated and Sinks are preferred.
- org.openrewrite.reactive.reactor.ReactorProcessorCacheToSinkRecipes$ReplayProcessorCacheDefaultToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCacheToSinkRecipes$ReplayProcessorCacheToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes: As of 3.5 Processors are deprecated and Sinks are preferred.
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$DirectProcessorCreateToSinkRecipe: As of 3.5 DirectProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$EmitterProcessorCreateBooleanToSinkRecipe: As of 3.5 EmitterProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$EmitterProcessorCreateIntBooleanToSinkRecipe: As of 3.5 EmitterProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$EmitterProcessorCreateIntToSinkRecipe: As of 3.5 EmitterProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$EmitterProcessorCreateToSinkRecipe: As of 3.5 EmitterProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$MonoProcessorCreateToSinkRecipe: As of 3.5 MonoProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateIntLiteralFalseToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateIntLiteralTrueToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateIntToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateSizeAndTimeoutSchedulerToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateSizeAndTimeoutToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateTimeoutSchedulerToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateTimeoutToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$ReplayProcessorCreateToSinkRecipe: As of 3.5 ReplayProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$UnicastProcessorCreateQueueConsumerDisposableToSinkRecipe: As of 3.5 UnicastProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$UnicastProcessorCreateQueueDisposableToSinkRecipe: As of 3.5 UnicastProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$UnicastProcessorCreateQueueToSinkRecipe: As of 3.5 UnicastProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.ReactorProcessorCreateToSinkRecipes$UnicastProcessorCreateToSinkRecipe: As of 3.5 UnicastProcessor is deprecated and Sinks are preferred
- org.openrewrite.reactive.reactor.UpgradeReactor_3_5: Adopt to breaking changes in Reactor 3.5.
- org.openrewrite.scala.migrate.UpgradeScala_2_12: Upgrade the Scala version for compatibility with newer Java versions.
- tech.picnic.errorprone.refasterrules.FileRulesRecipes$FilesCreateTempFileToFileRecipe: Recipe created for the following Refaster template:
java<br />static final class FilesCreateTempFileToFile {<br /> <br /> @BeforeTemplate<br /> @SuppressWarnings(value = "java:S5443")<br /> File before(String prefix, String suffix) throws IOException {<br /> return Refaster.anyOf(File.createTempFile(prefix, suffix), File.createTempFile(prefix, suffix, null));<br /> }<br /> <br /> @AfterTemplate<br /> @SuppressWarnings(value = "java:S5443")<br /> File after(String prefix, String suffix) throws IOException {<br /> return Files.createTempFile(prefix, suffix).toFile();<br /> }<br />}<br />
.
Removed Recipes
- org.openrewrite.java.migrate.jakarta.JavaxAnnotationSecurityPackageToJakarta: Change type of classes in the
javax.annotation.security
package to jakarta. - org.openrewrite.java.migrate.jakarta.JavaxAnnotationSqlPackageToJakarta: Change type of classes in the
javax.annotation.sql
package to jakarta. - org.openrewrite.java.migrate.wro4j.UpgradeWro4jMavenPluginVersion: This recipe will upgrade Wro4j to a more recent version compatible with Java 11.
- org.openrewrite.java.testing.assertj.IsEqualToBoolean: Adopt idiomatic AssertJ assertion for true booleans.
- org.openrewrite.java.testing.assertj.IsEqualToEmptyString: Adopt idiomatic AssertJ assertion for empty Strings.
- org.openrewrite.micrometer.UpgradeMicrometer13: Migrate applications to the latest Micrometer 1.13 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions as described in the Micrometer 1.13 migration guide.