diff --git a/docs/changelog/8-85-0-Release.md b/docs/changelog/8-85-0-Release.md new file mode 100644 index 0000000000..e426c7adad --- /dev/null +++ b/docs/changelog/8-85-0-Release.md @@ -0,0 +1,136 @@ +--- +description: What's changed in OpenRewrite version 8.85.0. +--- + +# 8.85.0 release (2026-06-17) + +_Total recipe count: 4463_ + +:::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). +::: + +## Corresponding CLI version + +* Stable CLI version `v3.57.16` +* Staging CLI version: `v3.57.16` + +## New Recipes + +* [ai.timefold.solver.migration.fork.TimefoldChangeDependencies](https://docs.openrewrite.org/recipes/timefold/solver/migration/fork/timefoldchangedependencies): Migrate all Maven and Gradle groupIds and artifactIds from OptaPlanner to Timefold. +* [ai.timefold.solver.migration.v8.AsConstraintRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/asconstraintrecipe): Use `penalize().asConstraint()` and `reward().asConstraint()` instead of the deprecated `penalize()` and `reward()` methods. +* [ai.timefold.solver.migration.v8.ConstraintRefRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/constraintrefrecipe): Use `getConstraintRef()` instead of `getConstraintId()` et al. +* [ai.timefold.solver.migration.v8.EnvironmentMigrationRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/environmentmigrationrecipe): Use non-deprecated environment constants. +* [ai.timefold.solver.migration.v8.NullableRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/nullablerecipe): Removes references to null vars and replace them with unassigned values. +* [ai.timefold.solver.migration.v8.RemoveConstraintPackageRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/removeconstraintpackagerecipe): Remove the use of constraint package from `asConstraint(package, name)`. +* [ai.timefold.solver.migration.v8.ScoreGettersRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/scoregettersrecipe): Use `score()` instead of `getScore()` on `Score` implementations. +* [ai.timefold.solver.migration.v8.ScoreManagerMethodsRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/scoremanagermethodsrecipe): Use `explain()` and `update()` instead of `explainScore()`, `updateScore()` and `getSummary()`. +* [ai.timefold.solver.migration.v8.SingleConstraintAssertionMethodsRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/singleconstraintassertionmethodsrecipe): Use `penalizesBy/rewardsWith(String, int)` instead of `penalizesBy/rewardsWith(int, String)` on `SingleConstraintAssertion` tests. +* [ai.timefold.solver.migration.v8.SolutionManagerRecommendAssignmentRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/solutionmanagerrecommendassignmentrecipe): Use recommendAssignment() instead of recommendFit(). +* [ai.timefold.solver.migration.v8.SolverManagerBuilderRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/solvermanagerbuilderrecipe): Use `solveBuilder()` instead of deprecated solve methods on `SolveManager`. +* [ai.timefold.solver.migration.v8.SortingMigrationRecipe](https://docs.openrewrite.org/recipes/timefold/solver/migration/v8/sortingmigrationrecipe): Use non-deprecated related sorting fields and methods. +* [io.axoniq.framework.migration.Axon4ToAxoniq5AxonServerConnector](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5axonserverconnector): Relocates the Axon Server connector from `org.axonframework.axonserver.connector` to `io.axoniq.framework.axonserver.connector`. The connector now lives in the Axoniq commercial offering (`io.axoniq.framework:axon-server-connector`). Class names are mostly preserved. +* [io.axoniq.framework.migration.Axon4ToAxoniq5Bom](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5bom): Replaces the imported `org.axonframework:axon-bom` (AF4) or `org.axonframework:axon-framework-bom` (free AF5) in `` with the Axoniq Framework 5 commercial BOM `io.axoniq.framework:axoniq-framework-bom`. +* [io.axoniq.framework.migration.Axon4ToAxoniq5DeadLetter](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5deadletter): Relocates the Sequenced Dead-Letter Queue (DLQ) types from the open-source `axon-messaging` module to the Axoniq commercial `axoniq-dead-letter` module (`io.axoniq.framework:axoniq-dead-letter`). Class names — including `SequencedDeadLetterQueue`, `JpaSequencedDeadLetterQueue`, `JdbcSequencedDeadLetterQueue`, `DeadLetteredEventProcessingTask`, `EnqueuePolicy`, `Decisions`, `ThrowableCause` — are preserved. +* [io.axoniq.framework.migration.Axon4ToAxoniq5DistributedMessaging](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5distributedmessaging): Relocates the distributed command-bus components (DistributedCommandBus, CommandBusConnector) from the AF4 open-source `axon-messaging` module into the Axoniq commercial `axoniq-distributed-messaging` module (`io.axoniq.framework.messaging.commandhandling.distributed`). Each AF4 fully-qualified name is mapped directly to its final Axoniq location, so this recipe is order-independent relative to the open-source messaging package rename. +* [io.axoniq.framework.migration.Axon4ToAxoniq5EventStreaming](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5eventstreaming): Placeholder. The Axoniq event streaming module (`io.axoniq.framework:axoniq-event-streaming`) consolidates multi-stream event consumption that lived in `MultiStreamableMessageSource` (available since Axon Framework 4.2) into a dedicated module in Axoniq Framework 5. AF4 applications using `MultiStreamableMessageSource` should migrate to `axoniq-event-streaming` once they adopt Axoniq Framework 5; this recipe will gain class-level mappings as that migration becomes deterministic. +* [io.axoniq.framework.migration.Axon4ToAxoniq5SpringBoot](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5springboot): Swaps the Spring Boot starter dependency to the Axoniq commercial variant (`io.axoniq.framework:axoniq-spring-boot-starter`). Accepts both the AF4 raw coordinate (`org.axonframework:axon-spring-boot-starter`) and the post-`Axon4ToAxon5SpringBootExtension` coordinate (`org.axonframework.extensions.spring:axon-spring-boot-starter`). Class-level mappings for the Axoniq autoconfig package `io.axoniq.framework.springboot.*` are not yet implemented. +* [io.axoniq.framework.migration.Axon4ToAxoniq5Testcontainer](https://docs.openrewrite.org/recipes/axoniq/framework/migration/axon4toaxoniq5testcontainer): Relocates the Axon Server Testcontainer types from the AF4 `axon-test` package `org.axonframework.test.server` to the dedicated Axoniq commercial artifact `io.axoniq.framework:axoniq-testcontainer` under `io.axoniq.framework.testcontainer`. The Enterprise (`AxonServerEEContainer`) and Standard (`AxonServerSEContainer`) edition variants both collapse into the unified `AxonServerContainer` in Axoniq 5. +* [io.axoniq.framework.migration.UpgradeAxon4ToAxoniq5](https://docs.openrewrite.org/recipes/axoniq/framework/migration/upgradeaxon4toaxoniq5): Migrates an Axon Framework 4.x application to Axoniq Framework 5 (commercial). Composes `UpgradeAxon4ToAxon5` (the free leg) and then layers commercial-only migrations: BOM swap to `io.axoniq.framework:axoniq-framework-bom`, Spring Boot starter swap to `io.axoniq.framework:axoniq-spring-boot-starter`, source rewrites and Maven adds for Axon Server connector, sequenced dead-letter queue, and distributed messaging. +* [io.quarkus.updates.camel.camel420.CamelQuarkusMigrationRecipe](https://docs.openrewrite.org/recipes/quarkus/updates/camel/camel420/camelquarkusmigrationrecipe): Migrates `camel 4.18` Quarkus application to `camel 4.20`. +* [io.quarkus.updates.core.quarkus324.MigrateFromDefaultUniqueDelegate](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus324/migratefromdefaultuniquedelegate): +* [io.quarkus.updates.core.quarkus324.MigrateFromEmptyInterceptor](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus324/migratefromemptyinterceptor): Replace `extends EmptyInterceptor` with `implements Interceptor, Serializable` as `EmptyInterceptor` was removed in Hibernate ORM 7. +* [io.quarkus.updates.core.quarkus324.MigrateFromHibernateOrmEmptyInterceptor](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus324/migratefromhibernateormemptyinterceptor): +* [io.quarkus.updates.core.quarkus324.MigrateFromHibernateOrmQueryHints](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus324/migratefromhibernateormqueryhints): +* [io.quarkus.updates.core.quarkus324.MigrateFromHibernateValidatorNotBlank](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus324/migratefromhibernatevalidatornotblank): +* [io.quarkus.updates.core.quarkus324.MigrateFromIndexColumn](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus324/migratefromindexcolumn): +* [io.quarkus.updates.core.quarkus337.PanacheNextRelocations](https://docs.openrewrite.org/recipes/quarkus/updates/core/quarkus337/panachenextrelocations): +* [org.axonframework.migration.AddAxonTestFixtureTearDown](https://docs.openrewrite.org/recipes/axonframework/migration/addaxontestfixtureteardown): Adds an `@AfterEach tearDown()` method calling `stop()` on the `AxonTestFixture` field, when the test class has such a field but no existing `@AfterEach` method (and no method named `tearDown`). Pairs with `MigrateAggregateTestFixtureSetup` which produces the field; the tear-down step was previously left for manual migration. Java sources only. +* [org.axonframework.migration.AddCommandAnnotation](https://docs.openrewrite.org/recipes/axonframework/migration/addcommandannotation): Scans @CommandHandler methods and annotates their command parameter types with @Command. Also migrates @RoutingKey on a field to @Command(routingKey = "fieldName") on the class, removing the @RoutingKey field annotation. +* [org.axonframework.migration.AddEntityCreatorAnnotation](https://docs.openrewrite.org/recipes/axonframework/migration/addentitycreatorannotation): Annotates existing no-arg constructors with `@EntityCreator` for any class annotated with `@EventSourcedEntity` or the Spring `@EventSourced` stereotype. Required by AF5 — the framework uses this annotation to instantiate the entity before applying events. Idempotent: skips constructors that are already annotated. +* [org.axonframework.migration.AddEventAnnotation](https://docs.openrewrite.org/recipes/axonframework/migration/addeventannotation): Scans @EventSourcingHandler methods and annotates their event parameter types with @Event. Migrates @Revision("x") on the class to @Event(version = "x"), removing the now-obsolete @Revision annotation. +* [org.axonframework.migration.AddEventTagAnnotation](https://docs.openrewrite.org/recipes/axonframework/migration/addeventtagannotation): Scans event-sourced entity classes for their @AggregateIdentifier field and the event types used in @EventSourcingHandler methods, then annotates the corresponding field in each event class with @EventTag(key = ``). +* [org.axonframework.migration.AnnotateObsoleteSequencingPolicyProperty](https://docs.openrewrite.org/recipes/axonframework/migration/annotateobsoletesequencingpolicyproperty): Inserts a one-line `# TODO(axon4to5): ...` comment above any `axon.eventhandling.processors..sequencing-policy` entry in `application.properties` / `application.yml`. AF5 moves the decision onto the handler class via `@SequencingPolicy`; deleting the property here would race the per-construct skill that drives the source-side annotation, so this recipe only annotates. Idempotent. +* [org.axonframework.migration.Axon4ToAxon5AmqpExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5amqpextension): Placeholder for the AMQP extension migration. The AMQP extension lives at `org.axonframework.extensions.amqp` in AF4 and does not yet have a finalized Axon Framework 5 equivalent. Update this recipe once the AF5 AMQP integration ships. +* [org.axonframework.migration.Axon4ToAxon5Bom](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5bom): Renames the imported `org.axonframework:axon-bom` BOM in `` to `org.axonframework:axon-framework-bom` and pins the imported version to the current Axon Framework 5 release. The BOM artifactId changed between Axon Framework 4 and Axon Framework 5; the groupId is unchanged. +* [org.axonframework.migration.Axon4ToAxon5CdiExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5cdiextension): Placeholder for the CDI extension migration. The extension lives at `org.axonframework.extensions.cdi` in AF4 and does not yet have a finalized Axon Framework 5 equivalent. Update this recipe once the AF5 CDI integration ships. +* [org.axonframework.migration.Axon4ToAxon5Common](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5common): Migrates `org.axonframework.config` to `org.axonframework.common.configuration`, renames `ConfigurerModule` to `ConfigurationEnhancer`, `ModuleConfiguration` to `Module`, `LifecycleOperations` to `LifecycleRegistry`, relocates `EventProcessingConfigurer` under the messaging.eventhandling namespace, and swaps `@ProcessingGroup` for the AF5 `@Namespace` annotation. +* [org.axonframework.migration.Axon4ToAxon5Conversion](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5conversion): Migrates the Serializer-based `org.axonframework.serialization` namespace to the new Converter-based `org.axonframework.conversion` namespace. Note: this is a package rename; concrete renames such as `JacksonSerializer` to `JacksonConverter` are NOT applied here and must be handled separately. +* [org.axonframework.migration.Axon4ToAxon5EventSourcing](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5eventsourcing): Relocates the `@EventSourcingHandler` annotation into `eventsourcing.annotation`, relocates `Snapshotter` into the new `eventsourcing.snapshot.api` API package, ensures the `org.axonframework:axon-eventsourcing` dependency is present when the app uses event-sourcing types (the AF5 Spring Boot starter no longer pulls it transitively, so apps not using the BOM need it added explicitly — it transitively brings `axon-modelling` and `axon-messaging`), and applies the source-level aggregate→entity rewrites — annotating no-arg constructors with the now-mandatory `@EntityCreator` and replacing `AggregateLifecycle.apply(...)` with an injected `EventAppender#append(...)`. +* [org.axonframework.migration.Axon4ToAxon5JGroupsExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5jgroupsextension): Placeholder for the JGroups extension migration. The JGroups extension at `org.axonframework.extensions.jgroups` provided distributed command bus routing in AF4. In Axon Framework 5 the distributed command bus has moved into the AxonIQ commercial offering (`io.axoniq.framework:axoniq-distributed-messaging`). Code using `JGroupsConnector` must be replaced with the AxonIQ commercial distributed messaging APIs. +* [org.axonframework.migration.Axon4ToAxon5KafkaExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5kafkaextension): Placeholder for the Kafka extension migration. The Kafka extension lives at `org.axonframework.extensions.kafka` in AF4 and does not yet have a finalized Axon Framework 5 equivalent. Update this recipe once the AF5 Kafka integration ships. +* [org.axonframework.migration.Axon4ToAxon5Messaging](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5messaging): Migrates the messaging core (command, event, query handling) from `org.axonframework.{command,event,query}handling` into the `org.axonframework.messaging.*` namespace, relocates handler & interceptor annotations into their `.annotation.*` subpackages, renames `EventBus` to `EventSink`, fixes `MetaData` casing to `Metadata`, relocates the top-level messaging API (`Message`, `Metadata`, `UnitOfWork`, `MessageHandlerInterceptor`, `MessageHandlerInterceptorChain`, `correlation.*`) into `messaging.core.*`, moves the sequencing policy package out of `eventhandling.async` into `messaging.core.sequencing`, relocates `tokenstore` and the replay/reset annotations under their AF5 subpackages, and moves `QueryGateway` into its own gateway subpackage. +* [org.axonframework.migration.Axon4ToAxon5MetricsDropwizardExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5metricsdropwizardextension): Relocates `org.axonframework.metrics` to `org.axonframework.extension.metrics.dropwizard`, reflecting the move from a flat `metrics` namespace to a per-provider layout under `extension.metrics.*`. +* [org.axonframework.migration.Axon4ToAxon5MetricsMicrometerExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5metricsmicrometerextension): Relocates `org.axonframework.micrometer` to `org.axonframework.extension.metrics.micrometer`, reflecting the move into the per-provider `extension.metrics.*` layout. +* [org.axonframework.migration.Axon4ToAxon5Modelling](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5modelling): Migrates the modelling layer from the `aggregate` vocabulary to the `entity` vocabulary: relocates `org.axonframework.modelling.command` to `org.axonframework.modelling.entity`, renames `TargetAggregateIdentifier` to `TargetEntityId`, `AggregateMember` to `EntityMember`, `Repository` into `modelling.repository`, and `CommandTargetResolver` to `EntityIdResolver`. Strips AF4-only modelling annotations (`@AggregateIdentifier`, `@CreationPolicy`) that have no AF5 successor — id resolution moved onto commands via `@TargetEntityId`, and the AF4 creation-policy semantics map onto static command handlers in AF5 (a manual rewrite the recipe cannot infer beyond removing the annotation itself). +* [org.axonframework.migration.Axon4ToAxon5MongoExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5mongoextension): Placeholder for the Mongo extension migration. The Mongo extension lives at `org.axonframework.extensions.mongo` in AF4 and does not yet have a finalized Axon Framework 5 equivalent. Update this recipe once the AF5 Mongo integration ships. +* [org.axonframework.migration.Axon4ToAxon5MultitenancyExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5multitenancyextension): Placeholder for the Multitenancy extension migration. The extension lives at `org.axonframework.extensions.multitenancy` in AF4 and does not yet have a finalized Axon Framework 5 equivalent. Update this recipe once the AF5 multitenancy story ships. +* [org.axonframework.migration.Axon4ToAxon5QueryResponseTypes](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5queryresponsetypes): On two-argument `queryGateway.query(payload, ResponseType)` calls, unwraps the AF4 `ResponseTypes.instanceOf(...)` / `optionalInstanceOf(...)` / `multipleInstancesOf(...)` wrapper to the plain `Class` form AF5 expects, and renames `query(payload, multipleInstancesOf(R.class))` to `queryMany(payload, R.class)`. Three-argument `query(String, Object, ...)` forms, `subscriptionQuery(...)`, and `streamingQuery(...)` are left untouched so the per-construct migration skill keeps the AF4 fingerprints it needs for design decisions. Removes `ResponseType` / `ResponseTypes` imports only when no references remain. +* [org.axonframework.migration.Axon4ToAxon5ReactorExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5reactorextension): Relocates `org.axonframework.extensions.reactor.*` to `org.axonframework.extension.reactor.*` (singular `extension`) and inserts the `messaging.` segment in front of the `commandhandling`, `eventhandling`, and `queryhandling` subpackages. The bare `extensions.reactor.messaging.*` package (which holds `ReactorMessageDispatchInterceptor` and the interceptor chain) is moved under `extension.reactor.messaging.core.*`. +* [org.axonframework.migration.Axon4ToAxon5SpringAotExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5springaotextension): The `org.axonframework.extensions.spring-aot:axon-spring-aot` extension has no Axon Framework 5 port. Removes the dependency so the project compiles against AF5. Projects that need Spring AOT / native-image support against AF5 must reintroduce equivalent functionality manually — there is no drop-in replacement. +* [org.axonframework.migration.Axon4ToAxon5SpringBootActuatorExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5springbootactuatorextension): Relocates `org.axonframework.actuator` to `org.axonframework.extension.springboot.actuator`. The Actuator support is now nested under the Spring Boot extension namespace. +* [org.axonframework.migration.Axon4ToAxon5SpringBootExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5springbootextension): Relocates `org.axonframework.springboot` to `org.axonframework.extension.springboot`, matching the Maven groupId move to `org.axonframework.extensions.spring`. Covers both the autoconfigure and starter artifacts (apps depend on the starter, which transitively pulls autoconfigure). Also rewrites Spring Boot configuration property keys whose binding class moved or was renamed in AF5. +* [org.axonframework.migration.Axon4ToAxon5SpringCloudExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5springcloudextension): Placeholder for the Spring Cloud extension migration. The Spring Cloud extension at `org.axonframework.extensions.springcloud` provided distributed command bus routing in AF4. In Axon Framework 5 the distributed command bus has moved into the AxonIQ commercial offering (`io.axoniq.framework:axoniq-distributed-messaging`). Code using `SpringCloudCommandRouter` must be replaced with the AxonIQ commercial distributed messaging APIs. +* [org.axonframework.migration.Axon4ToAxon5SpringExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5springextension): Relocates `org.axonframework.spring` to `org.axonframework.extension.spring` and renames the Spring stereotype `@Aggregate` to `@EventSourced`. The stereotype rename is mapped from both the AF4 location and the post-package- move location, so the recipe is order-independent. +* [org.axonframework.migration.Axon4ToAxon5Test](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5test): Renames `AggregateTestFixture` and `SagaTestFixture` to the unified `AxonTestFixture` introduced in Axon Framework 5, and rewrites AF4-style flat fixture call chains (`fixture.given(...).when(...).expectEvents(...)`) to the AF5 fluent given/when/then API (`fixture.given().events(...).when().command(...).then().events(...)`). Also generates an `@AfterEach tearDown()` calling `fixture.stop()` on test classes that declare an `AxonTestFixture` field but have no existing `@AfterEach`. Targets the `axon-test` Maven artifact. Hamcrest matcher conversions and Kotlin `@AfterEach` insertion remain manual. +* [org.axonframework.migration.Axon4ToAxon5TracingOpenTelemetryExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5tracingopentelemetryextension): Placeholder for the OpenTelemetry tracing extension migration. Revisioning of the distributed tracing extension for Axon Framework 5 is slated for a later release (see issue #3594). Update this recipe once the AF5 OpenTelemetry tracing integration ships. +* [org.axonframework.migration.Axon4ToAxon5TracingOpenTracingExtension](https://docs.openrewrite.org/recipes/axonframework/migration/axon4toaxon5tracingopentracingextension): Placeholder. The OpenTracing tracing extension at `org.axonframework.extensions.tracing` is superseded by the OpenTelemetry tracing extension in Axon Framework 5 (see `Axon4ToAxon5TracingOpenTelemetryExtension`). Code using OpenTracing must be migrated to OpenTelemetry manually. +* [org.axonframework.migration.ConfigureEventSourcedAnnotation](https://docs.openrewrite.org/recipes/axonframework/migration/configureeventsourcedannotation): Adds explicit tagKey = `` and idType = `.class` to @EventSourced annotations that have no tagKey set. The tagKey is derived from the class simple name (matching the AF5 default). The idType is deduced from the type of the field annotated with @AggregateIdentifier in AF4. When that field is absent (e.g. POJO aggregate without an explicit identifier field) the idType falls back to Object.class and is flagged with a TODO(axon4to5): comment. +* [org.axonframework.migration.ConvertCommandHandlerConstructorToCompanionObject](https://docs.openrewrite.org/recipes/axonframework/migration/convertcommandhandlerconstructortocompanionobject): Rewrites Kotlin `@CommandHandler constructor(...)` declarations into `companion object { @JvmStatic @CommandHandler fun handle(...) }` on the same class, matching the AF5 contract where `@CommandHandler` no longer targets constructors. Parameter list and method body are preserved. +* [org.axonframework.migration.ConvertCommandHandlerConstructorToStaticMethod](https://docs.openrewrite.org/recipes/axonframework/migration/convertcommandhandlerconstructortostaticmethod): Rewrites Axon Framework 4 `@CommandHandler` constructors into `public static void handle(...)` methods, matching the AF5 contract where `@CommandHandler` no longer targets constructors. Parameter list and method body are preserved. +* [org.axonframework.migration.MigrateAggregateTestFixtureSetup](https://docs.openrewrite.org/recipes/axonframework/migration/migrateaggregatetestfixturesetup): Rewrites `new AggregateTestFixture(X.class)` (the AF4 aggregate-fixture constructor) to AF5's `AxonTestFixture.with(EventSourcingConfigurer.create().registerEntity(EventSourcedEntityModule.autodetected(.class, X.class)))`. The aggregate type X is read from the class-literal constructor argument; the id type is looked up via the cross-recipe map populated by AddEventTagAnnotation (while @AggregateIdentifier is still on the source). Only matches the AF4 AggregateTestFixture FQN — SagaTestFixture setups are left for manual migration. +* [org.axonframework.migration.MigrateAxonTestFixtureFluentApi](https://docs.openrewrite.org/recipes/axonframework/migration/migrateaxontestfixturefluentapi): Rewrites the flat AF4 `fixture.given(...).when(...).expectEvents(...)` call shape to the AF5 fluent `fixture.given().events(...).when().command(...).then().events(...)` shape, including the leaf-method renames (`expectNoEvents` → `noEvents`, `expectSuccessfulHandlerExecution` → `success`, `expectException` + `expectExceptionMessage` → single `exception(cls, msg)`, etc.). The fixture setup migration (constructor → `AxonTestFixture.with(configurer)`, `@AfterEach stop()`) and Hamcrest matcher conversions stay manual. +* [org.axonframework.migration.MigrateCommandGatewayInEventHandler](https://docs.openrewrite.org/recipes/axonframework/migration/migratecommandgatewayineventhandler): Inside every `@EventHandler` method in the class, rewrites calls of the form `commandGateway.send(...)` / `commandGateway.sendAndWait(...)` (where `commandGateway` is a class-level `CommandGateway` field) to `commandDispatcher.send(...)` on a method-level `CommandDispatcher` parameter — adding the parameter when missing. For `void` handlers whose body is a single dispatch expression or a single try/catch with one dispatch per branch, the return type is widened to `CompletableFuture` and the dispatch is converted to `return ... .getResultMessage();`. Once no other references to the gateway field remain, the field, its constructor parameter, and the matching assignment are removed. +* [org.axonframework.migration.MigrateKotlinDslBomImport](https://docs.openrewrite.org/recipes/axonframework/migration/migratekotlindslbomimport): Swaps the `groupId:artifactId` prefix of a Spring Dependency Management `mavenBom("g:a:${property("...")}")` call in a `build.gradle.kts` script, leaving the `${property(...)}` indirection in place. Optionally updates the literal value of the matching `extra["..."]` declaration so the version follows the new BOM. Targets a gap in `gradle.ChangeManagedDependency` where the Kotlin string-template variant of `property(...)` is not recognized. +* [org.axonframework.migration.MigrateMessageInterceptorSignatures](https://docs.openrewrite.org/recipes/axonframework/migration/migratemessageinterceptorsignatures): Rewrites the method signatures of `MessageHandlerInterceptor` and `MessageDispatchInterceptor` implementations to their AF5 shape: `handle(UnitOfWork, InterceptorChain) -> Object` becomes `interceptOnHandle(M, ProcessingContext, MessageHandlerInterceptorChain) -> MessageStream` (and similarly for the dispatch interceptor). The method **body is left untouched** — the dropped `unitOfWork` / `interceptorChain` references become compile errors, surfacing every call site that needs review. A class-level `// TODO(axon4to5):` comment points to the migration path doc. The message type `M` is read from the `implements` clause; raw implementations fall back to `Message`. Runs after the AF4 -> AF5 FQN renames. +* [org.axonframework.migration.MigrateSequencingPolicyLambda](https://docs.openrewrite.org/recipes/axonframework/migration/migratesequencingpolicylambda): Rewrites single-argument `SequencingPolicy` lambdas (`e -> body`) to the AF5 shape `(e, ctx) -> Optional.ofNullable(body)`. The AF5 `SequencingPolicy.sequenceIdentifierFor` method takes both a message and a `ProcessingContext`, and returns `Optional` instead of a nullable `Object`. Adds the `java.util.Optional` import. Leaves block-body lambdas, multi-parameter lambdas, and anonymous inner classes alone — those need manual rewriting since the AF4 method name (`getSequenceIdentifierFor`) and the AF5 method name (`sequenceIdentifierFor`) differ. +* [org.axonframework.migration.MigrateSnapshotTriggerDefinitionToAnnotation](https://docs.openrewrite.org/recipes/axonframework/migration/migratesnapshottriggerdefinitiontoannotation): Replaces AF4 Spring Boot @Bean methods returning SnapshotTriggerDefinition with the AF5 @Snapshotting annotation on the corresponding aggregate class. EventCountSnapshotTriggerDefinition maps to afterEvents; AggregateLoadTimeSnapshotTriggerDefinition maps to afterSourcingTime. Custom implementations leave a TODO comment for manual review. +* [org.axonframework.migration.RemoveTypeArguments](https://docs.openrewrite.org/recipes/axonframework/migration/removetypearguments): Removes the generic type arguments (`<...>`) from any usage of the configured fully-qualified type. Preserves the underlying type reference and its surrounding context (variables, parameters, return types, generic bounds, etc.). +* [org.axonframework.migration.ReplaceAggregateLifecycleApply](https://docs.openrewrite.org/recipes/axonframework/migration/replaceaggregatelifecycleapply): Replaces every `AggregateLifecycle.apply(X)` (statically imported or via the class) with `eventAppender.append(X)`, injecting an `EventAppender eventAppender` parameter into the enclosing method when one is not already declared. Drops the static `apply` import once no usages remain. +* [org.axonframework.migration.UpgradeAxon4ToAxon5](https://docs.openrewrite.org/recipes/axonframework/migration/upgradeaxon4toaxon5): Migrates an Axon Framework 4.x application to free (Apache 2.0) Axon Framework 5. Bumps the Axon Framework dependency versions, applies per-module rename recipes (one per core framework module), and renames Maven coordinates within the `org.axonframework.*` namespace. Does NOT touch features dropped from free AF5 (Axon Server, DLQ, DistributedCommandBus) — see `UpgradeAxon4ToAxoniq5` for the commercial path. +* [org.axonframework.migration.UpgradeJava](https://docs.openrewrite.org/recipes/axonframework/migration/upgradejava): Bumps the Java compiler target in pom.xml/build.gradle to the configured LTS (defaults to 21, the Axon Framework 5 minimum). No-op for modules already at or above the target — projects already on a higher Java release are left untouched. +* [org.axonframework.migration.UpgradeKotlin](https://docs.openrewrite.org/recipes/axonframework/migration/upgradekotlin): Bumps the `org.jetbrains.kotlin:*` dependency versions and the `kotlin-maven-plugin` to the configured Kotlin line (defaults to "2.x", the latest Kotlin 2.x). No-op for modules already at or above the target — the underlying upgrade recipes never downgrade. Rejects targets below Kotlin 2.0. +* [org.openrewrite.gradle.gradle9.OneDependencyDeclarationPerStatement](https://docs.openrewrite.org/recipes/gradle/gradle9/onedependencydeclarationperstatement): The Gradle Groovy DSL accepts multiple coordinates in a single configuration call (e.g. `implementation 'a:b:1.0', 'c:d:2.0'`), but the Kotlin DSL does not. Gradle's best practices recommend declaring a single dependency per statement; see the [Gradle dependency best practices](https://docs.gradle.org/current/userguide/best_practices_dependencies.html). This recipe splits multi-coordinate Groovy DSL configuration calls into one call per coordinate. Run this as a cleanup pass before other dependency-aware recipes (e.g. `UpgradeDependencyVersion`, `ChangeDependency`, `RemoveDependency`): those recipes use the `GradleDependency` trait, which only inspects the first argument of a configuration call. Coordinates in later positions are invisible to them until this recipe reshapes the source into one declaration per statement. +* [org.openrewrite.gradle.gradle9.UseMatchingInsteadOfFindAll](https://docs.openrewrite.org/recipes/gradle/gradle9/usematchinginsteadoffindall): Gradle 9.4 deprecates the Groovy `DomainObjectCollection.findAll(Closure)` overload on containers such as `tasks`, `configurations`, and `sourceSets`. It is replaced by the lazy `DomainObjectCollection.matching(Closure)`, which returns a live collection that only filters elements as they are needed by the build. This recipe only swaps the method name, leaving the closure argument unchanged, rewriting `findAll { ... }` to `matching { ... }` when the receiver is a known Gradle container collection. +* [org.openrewrite.gradle.gradle9.UseProjectDependencyInsteadOfModuleCoordinates](https://docs.openrewrite.org/recipes/gradle/gradle9/useprojectdependencyinsteadofmodulecoordinates): Gradle 9.3 deprecates depending on the current project by its own `group:name:version` module coordinates. In Gradle 9.x such a declaration resolves to the project's local outgoing variants, but in Gradle 10 it will instead attempt resolution from a repository. This recipe replaces a dependency declaration whose coordinates match the current project with the equivalent `project("")` notation. Requires the `GradleProject` marker (available when parsed by the OpenRewrite Gradle plugin) to know the current project's coordinates and path. +* [org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate70](https://docs.openrewrite.org/recipes/hibernate/migratetohypersistenceutilshibernate70): This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-63` to `io.hypersistence:hypersistence-utils-hibernate-70`. +* [org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate71](https://docs.openrewrite.org/recipes/hibernate/migratetohypersistenceutilshibernate71): This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-70` to `io.hypersistence:hypersistence-utils-hibernate-71`. +* [org.openrewrite.java.jackson.MigrateFactorySettersToBuilder](https://docs.openrewrite.org/recipes/java/jackson/migratefactorysetterstobuilder): In Jackson 3, `JsonFactory` is immutable and `new JsonFactory()` is no longer the right entry point: the concrete factory lives at `tools.jackson.core.json.JsonFactory` and is constructed via `JsonFactory.builder()...build()`. Configuration methods like `enable`, `disable`, `configure`, `setCharacterEscapes`, etc. must be called on the builder instead. This recipe migrates setter calls to the builder pattern when safe, or adds TODO comments when automatic migration is not possible. +* [org.openrewrite.java.jackson.UpgradeJackson_2_3_ModernizeJacksonCoreFeatures](https://docs.openrewrite.org/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures): Jackson 2.10 moved most flag constants out of `JsonParser.Feature` and `JsonGenerator.Feature` into the new `JsonReadFeature` / `JsonWriteFeature` (for JSON-specific flags) and `StreamReadFeature` / `StreamWriteFeature` (for format-agnostic flags). Jackson 3 keeps only the modern locations. This recipe rewrites every legacy constant to its Jackson 2-modern equivalent so the rest of the Jackson 2 → 3 pipeline (in particular the builder migrations) sees flags the modern API will accept. +* [org.openrewrite.java.jackson.UseJsonFactoryStaticBuilder](https://docs.openrewrite.org/recipes/java/jackson/usejsonfactorystaticbuilder): After the Jackson 2 → 3 migration, prefer the concrete static `JsonFactory.builder()` entry over `new JsonFactoryBuilder()` so `JsonFactory` chains read the same way as the format-aligned factories (`YAMLFactory.builder()`, `CBORFactory.builder()`, etc.). The reason `MigrateFactorySettersToBuilder` emits `new JsonFactoryBuilder()` in the first place is a Jackson 2 quirk — `JsonFactory.builder()` returned the wildcard `TSFBuilder` there. In Jackson 3 the static returns a concretely-typed `JsonFactoryBuilder`, so the constructor form no longer earns its keep. +* [org.openrewrite.java.logging.slf4j.Log4j2IsEnabledToSlf4jRecipes](https://docs.openrewrite.org/recipes/java/logging/slf4j/log4j2isenabledtoslf4jrecipes): Replace calls to `Logger.isEnabled(Level)` with the corresponding SLF4J method calls. +* [org.openrewrite.java.logging.slf4j.Log4j2IsEnabledToSlf4jRecipes$LoggerIsEnabledLevelDebugRecipe](https://docs.openrewrite.org/recipes/java/logging/slf4j/log4j2isenabledtoslf4jrecipes$loggerisenabledleveldebugrecipe): Replace calls to `org.apache.logging.log4j.Logger.isEnabled(Level.DEBUG)` with `org.slf4j.Logger.isDebugEnabled()`. +* [org.openrewrite.java.logging.slf4j.Log4j2IsEnabledToSlf4jRecipes$LoggerIsEnabledLevelErrorRecipe](https://docs.openrewrite.org/recipes/java/logging/slf4j/log4j2isenabledtoslf4jrecipes$loggerisenabledlevelerrorrecipe): Replace calls to `org.apache.logging.log4j.Logger.isEnabled(Level.ERROR)` (or `Level.FATAL`) with `org.slf4j.Logger.isErrorEnabled()`, since SLF4J has no `FATAL` level. +* [org.openrewrite.java.logging.slf4j.Log4j2IsEnabledToSlf4jRecipes$LoggerIsEnabledLevelInfoRecipe](https://docs.openrewrite.org/recipes/java/logging/slf4j/log4j2isenabledtoslf4jrecipes$loggerisenabledlevelinforecipe): Replace calls to `org.apache.logging.log4j.Logger.isEnabled(Level.INFO)` with `org.slf4j.Logger.isInfoEnabled()`. +* [org.openrewrite.java.logging.slf4j.Log4j2IsEnabledToSlf4jRecipes$LoggerIsEnabledLevelTraceRecipe](https://docs.openrewrite.org/recipes/java/logging/slf4j/log4j2isenabledtoslf4jrecipes$loggerisenabledleveltracerecipe): Replace calls to `org.apache.logging.log4j.Logger.isEnabled(Level.TRACE)` (or `Level.ALL`) with `org.slf4j.Logger.isTraceEnabled()`, since SLF4J has no `ALL` level. +* [org.openrewrite.java.logging.slf4j.Log4j2IsEnabledToSlf4jRecipes$LoggerIsEnabledLevelWarnRecipe](https://docs.openrewrite.org/recipes/java/logging/slf4j/log4j2isenabledtoslf4jrecipes$loggerisenabledlevelwarnrecipe): Replace calls to `org.apache.logging.log4j.Logger.isEnabled(Level.WARN)` with `org.slf4j.Logger.isWarnEnabled()`. +* [org.openrewrite.java.migrate.AddMockitoJavaAgentToMavenSurefirePlugin](https://docs.openrewrite.org/recipes/java/migrate/addmockitojavaagenttomavensurefireplugin): Adds required configuration to specifically enable the Mockito/Bytebuddy Java agent in the Maven Surefire plugin for Java 21 compatibility. +* [org.openrewrite.java.migrate.UpgradeKotlinJvmTargetVersion](https://docs.openrewrite.org/recipes/java/migrate/upgradekotlinjvmtargetversion): Align the Kotlin `jvmTarget` with the project's Java version so the Kotlin compiler emits bytecode at the same level as `javac`. Covers `kotlin-maven-plugin` `` configuration and the Gradle `kotlinOptions { jvmTarget = ... }` / `compilerOptions { jvmTarget = ... }` blocks (Groovy and Kotlin DSL). Will not downgrade if the existing Kotlin target is higher than the requested version. +* [org.openrewrite.java.spring.boot3.UseRfc6265CookieProcessor](https://docs.openrewrite.org/recipes/java/spring/boot3/userfc6265cookieprocessor): Replace the legacy Tomcat `LegacyCookieProcessor` with the RFC 6265 compliant `Rfc6265CookieProcessor`, both in Java references and in the `` attribute of Tomcat configuration files such as `context.xml` and `server.xml`. `Rfc6265CookieProcessor` has been the default cookie processor since Tomcat 8.5; `LegacyCookieProcessor` exists only for backwards compatibility. RFC 6265 parsing is stricter than the legacy behavior, so review applications relying on legacy cookie handling before applying this recipe. +* [org.openrewrite.java.testing.assertj.MigrateAssertionsForClassAndInterfaceTypes](https://docs.openrewrite.org/recipes/java/testing/assertj/migrateassertionsforclassandinterfacetypes): AssertJ deprecated `AssertionsForClassTypes` and `AssertionsForInterfaceTypes` in favor of the unified `Assertions` entry point. This recipe retargets their static methods to `Assertions`, using `assertThatObject` where a plain `assertThat` would otherwise re-bind to a more specific overload and stop compiling (see https://github.com/openrewrite/rewrite-testing-frameworks/issues/664). +* [org.openrewrite.java.testing.assertj.MigrateAssertionsForClassTypes](https://docs.openrewrite.org/recipes/java/testing/assertj/migrateassertionsforclasstypes): The deprecated `AssertionsForClassTypes.assertThat(T)` always returns an `ObjectAssert`, while the unified `Assertions.assertThat` additionally offers more specific overloads (e.g. for `Iterable`, `Map`, `Predicate`). For arguments matching those overloads, rename `assertThat` to `assertThatObject` so that migrating to `Assertions` keeps returning an `ObjectAssert` and the code keeps compiling. +* [org.openrewrite.java.testing.junit.RemoveJupiterMigrationSupport](https://docs.openrewrite.org/recipes/java/testing/junit/removejupitermigrationsupport): Remove JUnit Jupiter migrationsupport. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxGetInternalStateToJavaReflection](https://docs.openrewrite.org/recipes/java/testing/mockito/powermockwhiteboxgetinternalstatetojavareflection): Replace `Whitebox.getInternalState(Object, String)` with `java.lang.reflect.Field` access, casting to the declared result type where needed. The field lookup uses `getDeclaredField` on the target object's class, which differs from PowerMock's class-hierarchy traversal for fields inherited from a superclass. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxInvokeMethodToJavaReflection](https://docs.openrewrite.org/recipes/java/testing/mockito/powermockwhiteboxinvokemethodtojavareflection): Replace `Whitebox.invokeMethod(Object, String, ..)` with `java.lang.reflect.Method` lookup and `invoke()`. Parameter types are taken from the unambiguously resolved target method, falling back to each argument's compile-time class. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxSetInternalStateToJavaReflection](https://docs.openrewrite.org/recipes/java/testing/mockito/powermockwhiteboxsetinternalstatetojavareflection): Replace `Whitebox.setInternalState(Object, String, Object)` and `Whitebox.setInternalState(Object, String, Object, Class)` with `java.lang.reflect.Field` access. The 3-arg overload looks up the field on the target's class; the 4-arg where-overload uses the supplied Class to resolve fields declared on a superclass. +* [org.openrewrite.java.testing.testcontainers.Testcontainers2LocalStack](https://docs.openrewrite.org/recipes/java/testing/testcontainers/testcontainers2localstack): Testcontainers 2.x removed the nested `LocalStackContainer.Service` enum and the `getEndpointOverride(...)` method. Replace `LocalStackContainer.Service` constants with the equivalent service name strings and `getEndpointOverride(service)` with `getEndpoint()`, so code continues to compile against Testcontainers 2.x. This runs while the type is still `org.testcontainers.containers.localstack.LocalStackContainer`, before it is renamed. +* [org.openrewrite.javascript.AddDependency](https://docs.openrewrite.org/recipes/javascript/adddependency): Add an npm dependency to `package.json` and regenerate the lock file by running the package manager. If the dependency already exists in any scope, the recipe is a no-op. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. +* [org.openrewrite.javascript.ChangeDependency](https://docs.openrewrite.org/recipes/javascript/changedependency): Renames an npm dependency in `package.json` and optionally updates its version constraint. After modifying the package.json, the lock file is regenerated by running the package manager. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. +* [org.openrewrite.javascript.RemoveDependency](https://docs.openrewrite.org/recipes/javascript/removedependency): Remove an npm dependency from `package.json` and regenerate the lock file. If the dependency does not exist in any scope, the recipe is a no-op. +* [org.openrewrite.javascript.UpgradeDependencyVersion](https://docs.openrewrite.org/recipes/javascript/upgradedependencyversion): Upgrades the version constraint of matching npm dependencies in `package.json` and regenerates the lock file by running the package manager. Matching is by exact package name or glob pattern. v1 uses simple string inequality for the upgrade check (always overwrites). A future version will use semver to skip already-up-to-date constraints. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. +* [org.openrewrite.javascript.UpgradeTransitiveDependencyVersion](https://docs.openrewrite.org/recipes/javascript/upgradetransitivedependencyversion): Pins or upgrades a transitive npm dependency by adding an override entry to `package.json` and regenerating the lock file. For npm and Bun, adds to the `overrides` field; for Yarn, adds to `resolutions`; for pnpm, adds to `pnpm.overrides`. The override is idempotent — if the entry already exists with the same version, no change is made. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. +* [org.openrewrite.jenkins.MoveJenkinsfileShebangAndReparse](https://docs.openrewrite.org/recipes/jenkins/movejenkinsfileshebangandreparse): Groovy's Antlr4 parser rejects a `#!` shebang that is not on the first line of the file, causing the `Jenkinsfile` to be ingested as a `ParseError`. This recipe detects that exact failure mode, relocates the shebang to line 1, and re-parses the result with the Groovy parser so downstream recipes have a usable Groovy LST to work with. +* [org.openrewrite.openapi.swagger.MigrateApiIgnoreParameterToParameterHidden](https://docs.openrewrite.org/recipes/openapi/swagger/migrateapiignoreparametertoparameterhidden): Springfox's `@ApiIgnore` is commonly placed on framework-injected controller parameters (`Principal`, `HttpServletRequest`, `Pageable`, ...). A flat `ChangeType` to `io.swagger.v3.oas.annotations.Hidden` produces code that does not compile, because `@Hidden` cannot target parameters. Convert parameter usages directly to `@io.swagger.v3.oas.annotations.Parameter(hidden = true)` and leave method/class-level `@ApiIgnore` for the subsequent `ChangeType` step. +* [org.openrewrite.quarkus.MigrateToQuarkus_v3_33_0](https://docs.openrewrite.org/recipes/quarkus/migratetoquarkus_v3_33_0): Quarkus update recipes to upgrade your application to 3.33.0. +* [org.openrewrite.quarkus.MigrateToQuarkus_v3_37_0](https://docs.openrewrite.org/recipes/quarkus/migratetoquarkus_v3_37_0): Quarkus update recipes to upgrade your application to 3.37.0. + +## Removed Recipes + +* **org.axonframework.migration.UpgradeAxonFramework_4_Jakarta**: Migration file to upgrade from an Axon Framework Javax-specific project to Jakarta. +* **org.axonframework.migration.UpgradeAxonFramework_4_Javax**: Migration file to upgrade an Axon Framework Javax-specific project and remain on Javax. +* **org.openrewrite.java.migrate.AddSurefireFailsafeArgLineForMockito**: Adds `--add-opens` JVM arguments required by Mockito and ByteBuddy to the Maven Surefire and Failsafe plugin `argLine` configuration. Only applied when the project depends on Mockito. +* **org.openrewrite.javascript.dependencies.add-dependency**: Adds a new dependency to `package.json` and updates the lock file by running the package manager. +* **org.openrewrite.javascript.dependencies.remove-dependency**: Removes a dependency from `package.json` and updates the lock file by running the package manager. +* **org.openrewrite.javascript.dependencies.upgrade-dependency-version**: Upgrades the version of a direct dependency in `package.json` and updates the lock file by running the package manager. Either `packageName` or `packagePattern` must be specified. +* **org.openrewrite.javascript.dependencies.upgrade-transitive-dependency-version**: Upgrades the version of a transitive dependency by adding override/resolution entries to `package.json` and updates the lock file by running the package manager. + diff --git a/docs/recipes/amazon/awssdk/v2migration/adds3eventnotificationdependency.md b/docs/recipes/amazon/awssdk/v2migration/adds3eventnotificationdependency.md index 24ff3eddfd..998c31ecad 100644 --- a/docs/recipes/amazon/awssdk/v2migration/adds3eventnotificationdependency.md +++ b/docs/recipes/amazon/awssdk/v2migration/adds3eventnotificationdependency.md @@ -34,7 +34,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Add Gradle or Maven dependency](../../../java/dependencies/adddependency) * groupId: `software.amazon.awssdk` * artifactId: `s3-event-notifications` - * version: `2.46.0` + * version: `2.46.10` * onlyIfUsing: `com.amazonaws.services.s3.event.S3EventNotification` @@ -55,7 +55,7 @@ recipeList: - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: s3-event-notifications - version: 2.46.0 + version: 2.46.10 onlyIfUsing: com.amazonaws.services.s3.event.S3EventNotification ``` diff --git a/docs/recipes/amazon/awssdk/v2migration/addtransfermanagerdependency.md b/docs/recipes/amazon/awssdk/v2migration/addtransfermanagerdependency.md index eff5cd57a4..48351e013b 100644 --- a/docs/recipes/amazon/awssdk/v2migration/addtransfermanagerdependency.md +++ b/docs/recipes/amazon/awssdk/v2migration/addtransfermanagerdependency.md @@ -34,7 +34,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Add Gradle or Maven dependency](../../../java/dependencies/adddependency) * groupId: `software.amazon.awssdk` * artifactId: `s3-transfer-manager` - * version: `2.46.0` + * version: `2.46.10` * onlyIfUsing: `com.amazonaws.services.s3.transfer.TransferManager` @@ -55,7 +55,7 @@ recipeList: - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: s3-transfer-manager - version: 2.46.0 + version: 2.46.10 onlyIfUsing: com.amazonaws.services.s3.transfer.TransferManager ``` diff --git a/docs/recipes/amazon/awssdk/v2migration/upgradesdkdependencies.md b/docs/recipes/amazon/awssdk/v2migration/upgradesdkdependencies.md index 7fe04e1127..25cff4acbb 100644 --- a/docs/recipes/amazon/awssdk/v2migration/upgradesdkdependencies.md +++ b/docs/recipes/amazon/awssdk/v2migration/upgradesdkdependencies.md @@ -33,2287 +33,2287 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Add Gradle or Maven dependency](../../../java/dependencies/adddependency) * groupId: `software.amazon.awssdk` * artifactId: `apache-client` - * version: `2.46.0` + * version: `2.46.10` * onlyIfUsing: `com.amazonaws.ClientConfiguration` * [Add Gradle or Maven dependency](../../../java/dependencies/adddependency) * groupId: `software.amazon.awssdk` * artifactId: `netty-nio-client` - * version: `2.46.0` + * version: `2.46.10` * onlyIfUsing: `com.amazonaws.ClientConfiguration` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-core` * newGroupId: `software.amazon.awssdk` * newArtifactId: `aws-core` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bom` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bom` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iot` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotdataplane` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-oam` * newGroupId: `software.amazon.awssdk` * newArtifactId: `oam` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotwireless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotwireless` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-forecast` * newGroupId: `software.amazon.awssdk` * newArtifactId: `forecast` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-licensemanagerlinuxsubscriptions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `licensemanagerlinuxsubscriptions` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-docdbelastic` * newGroupId: `software.amazon.awssdk` * newArtifactId: `docdbelastic` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-emrcontainers` * newGroupId: `software.amazon.awssdk` * newArtifactId: `emrcontainers` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-timestreamwrite` * newGroupId: `software.amazon.awssdk` * newArtifactId: `timestreamwrite` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codebuild` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codebuild` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotdeviceadvisor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotdeviceadvisor` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmcontacts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmcontacts` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pcaconnectorscep` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pcaconnectorscep` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-paymentcryptographydata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `paymentcryptographydata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codeguruprofiler` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codeguruprofiler` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesis` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisvideo` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisvideo` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpoint` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpoint` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iottwinmaker` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iottwinmaker` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-organizations` * newGroupId: `software.amazon.awssdk` * newArtifactId: `organizations` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-licensemanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `licensemanager` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-shield` * newGroupId: `software.amazon.awssdk` * newArtifactId: `shield` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssm` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediastoredata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediastoredata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakerruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakerruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-signer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `signer` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servicecatalog` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicecatalog` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-timestreaminfluxdb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `timestreaminfluxdb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lakeformation` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lakeformation` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pcs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pcs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-licensemanagerusersubscriptions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `licensemanagerusersubscriptions` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-secretsmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `secretsmanager` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediaconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediaconnect` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mwaa` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mwaa` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kms` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-quicksight` * newGroupId: `software.amazon.awssdk` * newArtifactId: `quicksight` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workmail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workmail` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-eventbridge` * newGroupId: `software.amazon.awssdk` * newArtifactId: `eventbridge` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakergeospatial` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakergeospatial` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-frauddetector` * newGroupId: `software.amazon.awssdk` * newArtifactId: `frauddetector` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elastictranscoder` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elastictranscoder` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticinference` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticinference` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lookoutequipment` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lookoutequipment` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pcaconnectorad` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pcaconnectorad` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpointsmsvoice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpointsmsvoice` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-securitylake` * newGroupId: `software.amazon.awssdk` * newArtifactId: `securitylake` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatch` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatchmetrics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatch` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-glue` * newGroupId: `software.amazon.awssdk` * newArtifactId: `glue` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-costoptimizationhub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `costoptimizationhub` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servicequotas` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicequotas` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-s3` * newGroupId: `software.amazon.awssdk` * newArtifactId: `s3` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appintegrations` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appintegrations` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sesv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sesv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-arczonalshift` * newGroupId: `software.amazon.awssdk` * newArtifactId: `arczonalshift` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-emr` * newGroupId: `software.amazon.awssdk` * newArtifactId: `emr` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-controltower` * newGroupId: `software.amazon.awssdk` * newArtifactId: `controltower` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotfleethub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotfleethub` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-personalize` * newGroupId: `software.amazon.awssdk` * newArtifactId: `personalize` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-outposts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `outposts` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workdocs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workdocs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-networkmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `networkmanager` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-omics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `omics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediapackage` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediapackage` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-medialive` * newGroupId: `software.amazon.awssdk` * newArtifactId: `medialive` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediaconvert` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediaconvert` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplaceagreement` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplaceagreement` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cognitosync` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cognitosync` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sns` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sns` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-datasync` * newGroupId: `software.amazon.awssdk` * newArtifactId: `datasync` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakeredgemanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakeredge` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-greengrassv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `greengrassv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpointemail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpointemail` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cleanroomsml` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cleanroomsml` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-augmentedairuntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakera2iruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-neptunedata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `neptunedata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-b2bi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `b2bi` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotanalytics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotanalytics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-inspector2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `inspector2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-groundstation` * newGroupId: `software.amazon.awssdk` * newArtifactId: `groundstation` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-fis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `fis` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-proton` * newGroupId: `software.amazon.awssdk` * newArtifactId: `proton` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-voiceid` * newGroupId: `software.amazon.awssdk` * newArtifactId: `voiceid` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudhsm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudhsm` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ecrpublic` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ecrpublic` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servermigration` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sms` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudtraildata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudtraildata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cognitoidentity` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cognitoidentity` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-config` * newGroupId: `software.amazon.awssdk` * newArtifactId: `config` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-osis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `osis` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-private5g` * newGroupId: `software.amazon.awssdk` * newArtifactId: `privatenetworks` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-memorydb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `memorydb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-inspector` * newGroupId: `software.amazon.awssdk` * newArtifactId: `inspector` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-translate` * newGroupId: `software.amazon.awssdk` * newArtifactId: `translate` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mailmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mailmanager` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-paymentcryptography` * newGroupId: `software.amazon.awssdk` * newArtifactId: `paymentcryptography` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chatbot` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chatbot` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-fms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `fms` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmincidents` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmincidents` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-vpclattice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `vpclattice` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-s3control` * newGroupId: `software.amazon.awssdk` * newArtifactId: `s3control` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qapps` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qapps` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-rdsdata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rdsdata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisanalyticsv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisanalyticsv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qbusiness` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qbusiness` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacecommerceanalytics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacecommerceanalytics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-synthetics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `synthetics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apptest` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apptest` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-costexplorer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `costexplorer` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotsecuretunneling` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotsecuretunneling` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudfront` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudfront` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-location` * newGroupId: `software.amazon.awssdk` * newArtifactId: `location` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-wafv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `wafv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opensearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opensearch` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ec2instanceconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ec2instanceconnect` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotthingsgraph` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotthingsgraph` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-repostspace` * newGroupId: `software.amazon.awssdk` * newArtifactId: `repostspace` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53recoveryreadiness` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53recoveryreadiness` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-health` * newGroupId: `software.amazon.awssdk` * newArtifactId: `health` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workmailmessageflow` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workmailmessageflow` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-comprehendmedical` * newGroupId: `software.amazon.awssdk` * newArtifactId: `comprehendmedical` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotfleetwise` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotfleetwise` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53profiles` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53profiles` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bcmdataexports` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bcmdataexports` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-accessanalyzer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `accessanalyzer` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-glacier` * newGroupId: `software.amazon.awssdk` * newArtifactId: `glacier` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lightsail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lightsail` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatchrum` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rum` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-inspectorscan` * newGroupId: `software.amazon.awssdk` * newArtifactId: `inspectorscan` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-imagebuilder` * newGroupId: `software.amazon.awssdk` * newArtifactId: `imagebuilder` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakermetrics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakermetrics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrockagent` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrockagent` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhub` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-simspaceweaver` * newGroupId: `software.amazon.awssdk` * newArtifactId: `simspaceweaver` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticbeanstalk` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticbeanstalk` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-freetier` * newGroupId: `software.amazon.awssdk` * newArtifactId: `freetier` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudsearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudsearchdomain` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-neptune` * newGroupId: `software.amazon.awssdk` * newArtifactId: `neptune` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-supportapp` * newGroupId: `software.amazon.awssdk` * newArtifactId: `supportapp` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-transfer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `transfer` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-deadline` * newGroupId: `software.amazon.awssdk` * newArtifactId: `deadline` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-braket` * newGroupId: `software.amazon.awssdk` * newArtifactId: `braket` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-verifiedpermissions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `verifiedpermissions` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-scheduler` * newGroupId: `software.amazon.awssdk` * newArtifactId: `scheduler` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacedeployment` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacedeployment` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resourcegroups` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resourcegroups` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qldb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qldb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `databasemigration` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ecr` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ecr` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dynamodb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dynamodb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resiliencehub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resiliencehub` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qldbsession` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qldbsession` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53domains` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-macie2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `macie2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkmeetings` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkmeetings` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationautoscaling` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationautoscaling` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-entityresolution` * newGroupId: `software.amazon.awssdk` * newArtifactId: `entityresolution` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-s3outposts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `s3outposts` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-managedgrafana` * newGroupId: `software.amazon.awssdk` * newArtifactId: `grafana` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-storagegateway` * newGroupId: `software.amazon.awssdk` * newArtifactId: `storagegateway` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-recyclebin` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rbin` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ioteventsdata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ioteventsdata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53recoverycluster` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53recoverycluster` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ecs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ecs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticloadbalancing` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticloadbalancing` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectcontactlens` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectcontactlens` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkmediapipelines` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkmediapipelines` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisvideosignalingchannels` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisvideosignaling` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qconnect` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kendraranking` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kendraranking` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudsearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudsearch` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-logs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatchlogs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appfabric` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appfabric` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lookoutforvision` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lookoutvision` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53resolver` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53resolver` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workspaces` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workspaces` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-machinelearning` * newGroupId: `software.amazon.awssdk` * newArtifactId: `machinelearning` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-costandusagereport` * newGroupId: `software.amazon.awssdk` * newArtifactId: `costandusagereport` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-taxsettings` * newGroupId: `software.amazon.awssdk` * newArtifactId: `taxsettings` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-fsx` * newGroupId: `software.amazon.awssdk` * newArtifactId: `fsx` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codepipeline` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codepipeline` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticloadbalancingv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticloadbalancingv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-directory` * newGroupId: `software.amazon.awssdk` * newArtifactId: `directory` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrockruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrockruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codestarnotifications` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codestarnotifications` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-schemas` * newGroupId: `software.amazon.awssdk` * newArtifactId: `schemas` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sqs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sqs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appregistry` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicecatalogappregistry` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appmesh` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appmesh` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhuborchestrator` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhuborchestrator` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-discovery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationdiscovery` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iot` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iot` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisvideowebrtcstorage` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisvideowebrtcstorage` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ebs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ebs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-amplify` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amplify` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudcontrolapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudcontrol` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-wellarchitected` * newGroupId: `software.amazon.awssdk` * newArtifactId: `wellarchitected` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplaceentitlement` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplaceentitlement` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrock` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrock` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-redshift` * newGroupId: `software.amazon.awssdk` * newArtifactId: `redshift` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectcases` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectcases` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appflow` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appflow` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-gamelift` * newGroupId: `software.amazon.awssdk` * newArtifactId: `gamelift` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudtrail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudtrail` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-supplychain` * newGroupId: `software.amazon.awssdk` * newArtifactId: `supplychain` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pipes` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pipes` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatchevidently` * newGroupId: `software.amazon.awssdk` * newArtifactId: `evidently` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-amplifyuibuilder` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amplifyuibuilder` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-managedblockchainquery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `managedblockchainquery` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationinsights` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationinsights` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkmessaging` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkmessaging` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediatailor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediatailor` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediapackagev2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediapackagev2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resourceexplorer2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resourceexplorer2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pi` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-emrserverless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `emrserverless` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appconfig` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appconfig` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-networkmonitor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `networkmonitor` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakerfeaturestoreruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakerfeaturestoreruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkidentity` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkidentity` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-computeoptimizer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `computeoptimizer` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectparticipant` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectparticipant` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mgn` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mgn` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationcostprofiler` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationcostprofiler` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-new-service-template` * newGroupId: `software.amazon.awssdk` * newArtifactId: `new-service-template` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-keyspaces` * newGroupId: `software.amazon.awssdk` * newArtifactId: `keyspaces` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iam` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iam` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-networkfirewall` * newGroupId: `software.amazon.awssdk` * newArtifactId: `networkfirewall` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-redshiftdataapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `redshiftdata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediastore` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediastore` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloud9` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloud9` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectwisdom` * newGroupId: `software.amazon.awssdk` * newArtifactId: `wisdom` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sso` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sso` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-auditmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `auditmanager` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-snowball` * newGroupId: `software.amazon.awssdk` * newArtifactId: `snowball` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisanalytics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53recoverycontrolconfig` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53recoverycontrolconfig` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opsworks` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opsworks` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-identitystore` * newGroupId: `software.amazon.awssdk` * newArtifactId: `identitystore` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectcampaign` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectcampaigns` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-textract` * newGroupId: `software.amazon.awssdk` * newArtifactId: `textract` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-redshiftserverless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `redshiftserverless` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-eks` * newGroupId: `software.amazon.awssdk` * newArtifactId: `eks` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-support` * newGroupId: `software.amazon.awssdk` * newArtifactId: `support` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mechanicalturkrequester` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mturk` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apigatewayv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apigatewayv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-devopsguru` * newGroupId: `software.amazon.awssdk` * newArtifactId: `devopsguru` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-prometheus` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amp` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-drs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `drs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhubconfig` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhubconfig` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kafkaconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kafkaconnect` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kafka` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kafka` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-gluedatabrew` * newGroupId: `software.amazon.awssdk` * newArtifactId: `databrew` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codedeploy` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codedeploy` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudhsmv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudhsmv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-batch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `batch` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-savingsplans` * newGroupId: `software.amazon.awssdk` * newArtifactId: `savingsplans` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhubstrategyrecommendations` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhubstrategy` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appsync` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appsync` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-backupgateway` * newGroupId: `software.amazon.awssdk` * newArtifactId: `backupgateway` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dlm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dlm` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-amplifybackend` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amplifybackend` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-datazoneexternal` * newGroupId: `software.amazon.awssdk` * newArtifactId: `datazone` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-billingconductor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `billingconductor` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workspacesthinclient` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workspacesthinclient` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmsap` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmsap` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-budgets` * newGroupId: `software.amazon.awssdk` * newArtifactId: `budgets` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mainframemodernization` * newGroupId: `software.amazon.awssdk` * newArtifactId: `m2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-finspace` * newGroupId: `software.amazon.awssdk` * newArtifactId: `finspace` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-detective` * newGroupId: `software.amazon.awssdk` * newArtifactId: `detective` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lambda` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lambda` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssooidc` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssooidc` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-panorama` * newGroupId: `software.amazon.awssdk` * newArtifactId: `panorama` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotevents` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotevents` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-managedblockchain` * newGroupId: `software.amazon.awssdk` * newArtifactId: `managedblockchain` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servicediscovery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicediscovery` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-waf` * newGroupId: `software.amazon.awssdk` * newArtifactId: `waf` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ivs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ivs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-directconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `directconnect` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mq` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mq` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpointsmsvoicev2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpointsmsvoicev2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-internetmonitor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `internetmonitor` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-artifact` * newGroupId: `software.amazon.awssdk` * newArtifactId: `artifact` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotsitewise` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotsitewise` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lexmodelsv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexmodelsv2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lexruntimev2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexruntimev2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-serverlessapplicationrepository` * newGroupId: `software.amazon.awssdk` * newArtifactId: `serverlessapplicationrepository` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-eksauth` * newGroupId: `software.amazon.awssdk` * newArtifactId: `eksauth` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-snowdevicemanagement` * newGroupId: `software.amazon.awssdk` * newArtifactId: `snowdevicemanagement` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-clouddirectory` * newGroupId: `software.amazon.awssdk` * newArtifactId: `clouddirectory` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediapackagevod` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediapackagevod` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codestarconnections` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codestarconnections` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codeartifact` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codeartifact` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-guardduty` * newGroupId: `software.amazon.awssdk` * newArtifactId: `guardduty` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-worklink` * newGroupId: `software.amazon.awssdk` * newArtifactId: `worklink` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cleanrooms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cleanrooms` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-customerprofiles` * newGroupId: `software.amazon.awssdk` * newArtifactId: `customerprofiles` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-trustedadvisor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `trustedadvisor` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dax` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dax` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opsworkscm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opsworkscm` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-docdb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `docdb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-acmpca` * newGroupId: `software.amazon.awssdk` * newArtifactId: `acmpca` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `firehose` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ivschat` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ivschat` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-globalaccelerator` * newGroupId: `software.amazon.awssdk` * newArtifactId: `globalaccelerator` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ses` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ses` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codegurureviewer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codegurureviewer` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lexmodelbuilding` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexmodelbuilding` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-medicalimaging` * newGroupId: `software.amazon.awssdk` * newArtifactId: `medicalimaging` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-account` * newGroupId: `software.amazon.awssdk` * newArtifactId: `account` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-robomaker` * newGroupId: `software.amazon.awssdk` * newArtifactId: `robomaker` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lex` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-autoscaling` * newGroupId: `software.amazon.awssdk` * newArtifactId: `autoscaling` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-nimblestudio` * newGroupId: `software.amazon.awssdk` * newArtifactId: `nimble` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotjobsdataplane` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotjobsdataplane` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appconfigdata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appconfigdata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-controlcatalog` * newGroupId: `software.amazon.awssdk` * newArtifactId: `controlcatalog` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-greengrass` * newGroupId: `software.amazon.awssdk` * newArtifactId: `greengrass` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-securityhub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `securityhub` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-timestreamquery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `timestreamquery` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-backup` * newGroupId: `software.amazon.awssdk` * newArtifactId: `backup` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opensearchserverless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opensearchserverless` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudformation` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudformation` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kendra` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kendra` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connect` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticache` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticache` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-stepfunctions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sfn` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cognitoidp` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cognitoidentityprovider` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkvoice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkvoice` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workspacesweb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workspacesweb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-comprehend` * newGroupId: `software.amazon.awssdk` * newArtifactId: `comprehend` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationsignals` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationsignals` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacemeteringservice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacemetering` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-devicefarm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `devicefarm` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-rekognition` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rekognition` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appstream` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appstream` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-polly` * newGroupId: `software.amazon.awssdk` * newArtifactId: `polly` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-rds` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rds` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pricing` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pricing` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-simpleworkflow` * newGroupId: `software.amazon.awssdk` * newArtifactId: `swf` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-events` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatchevents` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmquicksetup` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmquicksetup` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-autoscalingplans` * newGroupId: `software.amazon.awssdk` * newArtifactId: `autoscalingplans` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-datapipeline` * newGroupId: `software.amazon.awssdk` * newArtifactId: `datapipeline` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-transcribe` * newGroupId: `software.amazon.awssdk` * newArtifactId: `transcribe` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ivsrealtime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ivsrealtime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-personalizeruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `personalizeruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticsearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticsearch` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codecommit` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codecommit` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resourcegroupstaggingapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resourcegroupstaggingapi` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-forecastquery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `forecastquery` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-healthlake` * newGroupId: `software.amazon.awssdk` * newArtifactId: `healthlake` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iamrolesanywhere` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rolesanywhere` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-personalizeevents` * newGroupId: `software.amazon.awssdk` * newArtifactId: `personalizeevents` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apigatewaymanagementapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apigatewaymanagementapi` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-launchwizard` * newGroupId: `software.amazon.awssdk` * newArtifactId: `launchwizard` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-xray` * newGroupId: `software.amazon.awssdk` * newArtifactId: `xray` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssoadmin` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssoadmin` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-api-gateway` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apigateway` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhubrefactorspaces` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhubrefactorspaces` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ram` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ram` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codeconnections` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codeconnections` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-efs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `efs` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrockagentruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrockagentruntime` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dataexchange` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dataexchange` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sts` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemaker` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemaker` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-finspacedata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `finspacedata` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacecatalog` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacecatalog` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-acm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `acm` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-athena` * newGroupId: `software.amazon.awssdk` * newArtifactId: `athena` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codegurusecurity` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codegurusecurity` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-tnb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `tnb` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ec2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ec2` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apprunner` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apprunner` - * newVersion: `2.46.0` + * newVersion: `2.46.10` * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lookoutmetrics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lookoutmetrics` - * newVersion: `2.46.0` + * newVersion: `2.46.10` @@ -2330,2287 +2330,2287 @@ recipeList: - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: apache-client - version: 2.46.0 + version: 2.46.10 onlyIfUsing: com.amazonaws.ClientConfiguration - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: netty-nio-client - version: 2.46.0 + version: 2.46.10 onlyIfUsing: com.amazonaws.ClientConfiguration - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-core newGroupId: software.amazon.awssdk newArtifactId: aws-core - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bom newGroupId: software.amazon.awssdk newArtifactId: bom - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iot newGroupId: software.amazon.awssdk newArtifactId: iotdataplane - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-oam newGroupId: software.amazon.awssdk newArtifactId: oam - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotwireless newGroupId: software.amazon.awssdk newArtifactId: iotwireless - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-forecast newGroupId: software.amazon.awssdk newArtifactId: forecast - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-licensemanagerlinuxsubscriptions newGroupId: software.amazon.awssdk newArtifactId: licensemanagerlinuxsubscriptions - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-docdbelastic newGroupId: software.amazon.awssdk newArtifactId: docdbelastic - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-emrcontainers newGroupId: software.amazon.awssdk newArtifactId: emrcontainers - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-timestreamwrite newGroupId: software.amazon.awssdk newArtifactId: timestreamwrite - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codebuild newGroupId: software.amazon.awssdk newArtifactId: codebuild - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotdeviceadvisor newGroupId: software.amazon.awssdk newArtifactId: iotdeviceadvisor - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmcontacts newGroupId: software.amazon.awssdk newArtifactId: ssmcontacts - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pcaconnectorscep newGroupId: software.amazon.awssdk newArtifactId: pcaconnectorscep - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-paymentcryptographydata newGroupId: software.amazon.awssdk newArtifactId: paymentcryptographydata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codeguruprofiler newGroupId: software.amazon.awssdk newArtifactId: codeguruprofiler - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesis newGroupId: software.amazon.awssdk newArtifactId: kinesis - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisvideo newGroupId: software.amazon.awssdk newArtifactId: kinesisvideo - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpoint newGroupId: software.amazon.awssdk newArtifactId: pinpoint - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chime newGroupId: software.amazon.awssdk newArtifactId: chime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iottwinmaker newGroupId: software.amazon.awssdk newArtifactId: iottwinmaker - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-organizations newGroupId: software.amazon.awssdk newArtifactId: organizations - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-licensemanager newGroupId: software.amazon.awssdk newArtifactId: licensemanager - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-shield newGroupId: software.amazon.awssdk newArtifactId: shield - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssm newGroupId: software.amazon.awssdk newArtifactId: ssm - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediastoredata newGroupId: software.amazon.awssdk newArtifactId: mediastoredata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakerruntime newGroupId: software.amazon.awssdk newArtifactId: sagemakerruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-signer newGroupId: software.amazon.awssdk newArtifactId: signer - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servicecatalog newGroupId: software.amazon.awssdk newArtifactId: servicecatalog - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-timestreaminfluxdb newGroupId: software.amazon.awssdk newArtifactId: timestreaminfluxdb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lakeformation newGroupId: software.amazon.awssdk newArtifactId: lakeformation - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pcs newGroupId: software.amazon.awssdk newArtifactId: pcs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-licensemanagerusersubscriptions newGroupId: software.amazon.awssdk newArtifactId: licensemanagerusersubscriptions - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-secretsmanager newGroupId: software.amazon.awssdk newArtifactId: secretsmanager - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediaconnect newGroupId: software.amazon.awssdk newArtifactId: mediaconnect - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mwaa newGroupId: software.amazon.awssdk newArtifactId: mwaa - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kms newGroupId: software.amazon.awssdk newArtifactId: kms - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-quicksight newGroupId: software.amazon.awssdk newArtifactId: quicksight - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workmail newGroupId: software.amazon.awssdk newArtifactId: workmail - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-eventbridge newGroupId: software.amazon.awssdk newArtifactId: eventbridge - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakergeospatial newGroupId: software.amazon.awssdk newArtifactId: sagemakergeospatial - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-frauddetector newGroupId: software.amazon.awssdk newArtifactId: frauddetector - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elastictranscoder newGroupId: software.amazon.awssdk newArtifactId: elastictranscoder - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticinference newGroupId: software.amazon.awssdk newArtifactId: elasticinference - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lookoutequipment newGroupId: software.amazon.awssdk newArtifactId: lookoutequipment - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pcaconnectorad newGroupId: software.amazon.awssdk newArtifactId: pcaconnectorad - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpointsmsvoice newGroupId: software.amazon.awssdk newArtifactId: pinpointsmsvoice - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-securitylake newGroupId: software.amazon.awssdk newArtifactId: securitylake - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatch newGroupId: software.amazon.awssdk newArtifactId: cloudwatch - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatchmetrics newGroupId: software.amazon.awssdk newArtifactId: cloudwatch - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-glue newGroupId: software.amazon.awssdk newArtifactId: glue - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-costoptimizationhub newGroupId: software.amazon.awssdk newArtifactId: costoptimizationhub - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servicequotas newGroupId: software.amazon.awssdk newArtifactId: servicequotas - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-s3 newGroupId: software.amazon.awssdk newArtifactId: s3 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appintegrations newGroupId: software.amazon.awssdk newArtifactId: appintegrations - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sesv2 newGroupId: software.amazon.awssdk newArtifactId: sesv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-arczonalshift newGroupId: software.amazon.awssdk newArtifactId: arczonalshift - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-emr newGroupId: software.amazon.awssdk newArtifactId: emr - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-controltower newGroupId: software.amazon.awssdk newArtifactId: controltower - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotfleethub newGroupId: software.amazon.awssdk newArtifactId: iotfleethub - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-personalize newGroupId: software.amazon.awssdk newArtifactId: personalize - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-outposts newGroupId: software.amazon.awssdk newArtifactId: outposts - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workdocs newGroupId: software.amazon.awssdk newArtifactId: workdocs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-networkmanager newGroupId: software.amazon.awssdk newArtifactId: networkmanager - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-omics newGroupId: software.amazon.awssdk newArtifactId: omics - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediapackage newGroupId: software.amazon.awssdk newArtifactId: mediapackage - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-medialive newGroupId: software.amazon.awssdk newArtifactId: medialive - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediaconvert newGroupId: software.amazon.awssdk newArtifactId: mediaconvert - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplaceagreement newGroupId: software.amazon.awssdk newArtifactId: marketplaceagreement - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cognitosync newGroupId: software.amazon.awssdk newArtifactId: cognitosync - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sns newGroupId: software.amazon.awssdk newArtifactId: sns - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-datasync newGroupId: software.amazon.awssdk newArtifactId: datasync - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakeredgemanager newGroupId: software.amazon.awssdk newArtifactId: sagemakeredge - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-greengrassv2 newGroupId: software.amazon.awssdk newArtifactId: greengrassv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpointemail newGroupId: software.amazon.awssdk newArtifactId: pinpointemail - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cleanroomsml newGroupId: software.amazon.awssdk newArtifactId: cleanroomsml - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-augmentedairuntime newGroupId: software.amazon.awssdk newArtifactId: sagemakera2iruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-neptunedata newGroupId: software.amazon.awssdk newArtifactId: neptunedata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-b2bi newGroupId: software.amazon.awssdk newArtifactId: b2bi - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotanalytics newGroupId: software.amazon.awssdk newArtifactId: iotanalytics - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-inspector2 newGroupId: software.amazon.awssdk newArtifactId: inspector2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-groundstation newGroupId: software.amazon.awssdk newArtifactId: groundstation - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-fis newGroupId: software.amazon.awssdk newArtifactId: fis - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-proton newGroupId: software.amazon.awssdk newArtifactId: proton - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-voiceid newGroupId: software.amazon.awssdk newArtifactId: voiceid - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudhsm newGroupId: software.amazon.awssdk newArtifactId: cloudhsm - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ecrpublic newGroupId: software.amazon.awssdk newArtifactId: ecrpublic - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servermigration newGroupId: software.amazon.awssdk newArtifactId: sms - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudtraildata newGroupId: software.amazon.awssdk newArtifactId: cloudtraildata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cognitoidentity newGroupId: software.amazon.awssdk newArtifactId: cognitoidentity - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-config newGroupId: software.amazon.awssdk newArtifactId: config - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-osis newGroupId: software.amazon.awssdk newArtifactId: osis - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-private5g newGroupId: software.amazon.awssdk newArtifactId: privatenetworks - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-memorydb newGroupId: software.amazon.awssdk newArtifactId: memorydb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-inspector newGroupId: software.amazon.awssdk newArtifactId: inspector - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-translate newGroupId: software.amazon.awssdk newArtifactId: translate - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mailmanager newGroupId: software.amazon.awssdk newArtifactId: mailmanager - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-paymentcryptography newGroupId: software.amazon.awssdk newArtifactId: paymentcryptography - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chatbot newGroupId: software.amazon.awssdk newArtifactId: chatbot - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-fms newGroupId: software.amazon.awssdk newArtifactId: fms - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmincidents newGroupId: software.amazon.awssdk newArtifactId: ssmincidents - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-vpclattice newGroupId: software.amazon.awssdk newArtifactId: vpclattice - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-s3control newGroupId: software.amazon.awssdk newArtifactId: s3control - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qapps newGroupId: software.amazon.awssdk newArtifactId: qapps - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-rdsdata newGroupId: software.amazon.awssdk newArtifactId: rdsdata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisanalyticsv2 newGroupId: software.amazon.awssdk newArtifactId: kinesisanalyticsv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qbusiness newGroupId: software.amazon.awssdk newArtifactId: qbusiness - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacecommerceanalytics newGroupId: software.amazon.awssdk newArtifactId: marketplacecommerceanalytics - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-synthetics newGroupId: software.amazon.awssdk newArtifactId: synthetics - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apptest newGroupId: software.amazon.awssdk newArtifactId: apptest - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-costexplorer newGroupId: software.amazon.awssdk newArtifactId: costexplorer - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotsecuretunneling newGroupId: software.amazon.awssdk newArtifactId: iotsecuretunneling - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudfront newGroupId: software.amazon.awssdk newArtifactId: cloudfront - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-location newGroupId: software.amazon.awssdk newArtifactId: location - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-wafv2 newGroupId: software.amazon.awssdk newArtifactId: wafv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opensearch newGroupId: software.amazon.awssdk newArtifactId: opensearch - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ec2instanceconnect newGroupId: software.amazon.awssdk newArtifactId: ec2instanceconnect - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotthingsgraph newGroupId: software.amazon.awssdk newArtifactId: iotthingsgraph - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-repostspace newGroupId: software.amazon.awssdk newArtifactId: repostspace - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53recoveryreadiness newGroupId: software.amazon.awssdk newArtifactId: route53recoveryreadiness - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-health newGroupId: software.amazon.awssdk newArtifactId: health - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workmailmessageflow newGroupId: software.amazon.awssdk newArtifactId: workmailmessageflow - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-comprehendmedical newGroupId: software.amazon.awssdk newArtifactId: comprehendmedical - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotfleetwise newGroupId: software.amazon.awssdk newArtifactId: iotfleetwise - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53profiles newGroupId: software.amazon.awssdk newArtifactId: route53profiles - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bcmdataexports newGroupId: software.amazon.awssdk newArtifactId: bcmdataexports - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-accessanalyzer newGroupId: software.amazon.awssdk newArtifactId: accessanalyzer - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-glacier newGroupId: software.amazon.awssdk newArtifactId: glacier - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lightsail newGroupId: software.amazon.awssdk newArtifactId: lightsail - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatchrum newGroupId: software.amazon.awssdk newArtifactId: rum - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-inspectorscan newGroupId: software.amazon.awssdk newArtifactId: inspectorscan - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-imagebuilder newGroupId: software.amazon.awssdk newArtifactId: imagebuilder - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakermetrics newGroupId: software.amazon.awssdk newArtifactId: sagemakermetrics - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrockagent newGroupId: software.amazon.awssdk newArtifactId: bedrockagent - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhub newGroupId: software.amazon.awssdk newArtifactId: migrationhub - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-simspaceweaver newGroupId: software.amazon.awssdk newArtifactId: simspaceweaver - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticbeanstalk newGroupId: software.amazon.awssdk newArtifactId: elasticbeanstalk - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-freetier newGroupId: software.amazon.awssdk newArtifactId: freetier - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudsearch newGroupId: software.amazon.awssdk newArtifactId: cloudsearchdomain - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-neptune newGroupId: software.amazon.awssdk newArtifactId: neptune - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-supportapp newGroupId: software.amazon.awssdk newArtifactId: supportapp - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-transfer newGroupId: software.amazon.awssdk newArtifactId: transfer - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-deadline newGroupId: software.amazon.awssdk newArtifactId: deadline - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-braket newGroupId: software.amazon.awssdk newArtifactId: braket - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-verifiedpermissions newGroupId: software.amazon.awssdk newArtifactId: verifiedpermissions - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-scheduler newGroupId: software.amazon.awssdk newArtifactId: scheduler - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacedeployment newGroupId: software.amazon.awssdk newArtifactId: marketplacedeployment - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resourcegroups newGroupId: software.amazon.awssdk newArtifactId: resourcegroups - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qldb newGroupId: software.amazon.awssdk newArtifactId: qldb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dms newGroupId: software.amazon.awssdk newArtifactId: databasemigration - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ecr newGroupId: software.amazon.awssdk newArtifactId: ecr - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dynamodb newGroupId: software.amazon.awssdk newArtifactId: dynamodb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resiliencehub newGroupId: software.amazon.awssdk newArtifactId: resiliencehub - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qldbsession newGroupId: software.amazon.awssdk newArtifactId: qldbsession - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53 newGroupId: software.amazon.awssdk newArtifactId: route53domains - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-macie2 newGroupId: software.amazon.awssdk newArtifactId: macie2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkmeetings newGroupId: software.amazon.awssdk newArtifactId: chimesdkmeetings - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationautoscaling newGroupId: software.amazon.awssdk newArtifactId: applicationautoscaling - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-entityresolution newGroupId: software.amazon.awssdk newArtifactId: entityresolution - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-s3outposts newGroupId: software.amazon.awssdk newArtifactId: s3outposts - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-managedgrafana newGroupId: software.amazon.awssdk newArtifactId: grafana - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-storagegateway newGroupId: software.amazon.awssdk newArtifactId: storagegateway - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-recyclebin newGroupId: software.amazon.awssdk newArtifactId: rbin - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ioteventsdata newGroupId: software.amazon.awssdk newArtifactId: ioteventsdata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53recoverycluster newGroupId: software.amazon.awssdk newArtifactId: route53recoverycluster - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ecs newGroupId: software.amazon.awssdk newArtifactId: ecs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticloadbalancing newGroupId: software.amazon.awssdk newArtifactId: elasticloadbalancing - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectcontactlens newGroupId: software.amazon.awssdk newArtifactId: connectcontactlens - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkmediapipelines newGroupId: software.amazon.awssdk newArtifactId: chimesdkmediapipelines - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisvideosignalingchannels newGroupId: software.amazon.awssdk newArtifactId: kinesisvideosignaling - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qconnect newGroupId: software.amazon.awssdk newArtifactId: qconnect - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kendraranking newGroupId: software.amazon.awssdk newArtifactId: kendraranking - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudsearch newGroupId: software.amazon.awssdk newArtifactId: cloudsearch - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-logs newGroupId: software.amazon.awssdk newArtifactId: cloudwatchlogs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appfabric newGroupId: software.amazon.awssdk newArtifactId: appfabric - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lookoutforvision newGroupId: software.amazon.awssdk newArtifactId: lookoutvision - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53resolver newGroupId: software.amazon.awssdk newArtifactId: route53resolver - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workspaces newGroupId: software.amazon.awssdk newArtifactId: workspaces - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-machinelearning newGroupId: software.amazon.awssdk newArtifactId: machinelearning - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-costandusagereport newGroupId: software.amazon.awssdk newArtifactId: costandusagereport - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-taxsettings newGroupId: software.amazon.awssdk newArtifactId: taxsettings - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-fsx newGroupId: software.amazon.awssdk newArtifactId: fsx - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codepipeline newGroupId: software.amazon.awssdk newArtifactId: codepipeline - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticloadbalancingv2 newGroupId: software.amazon.awssdk newArtifactId: elasticloadbalancingv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-directory newGroupId: software.amazon.awssdk newArtifactId: directory - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrockruntime newGroupId: software.amazon.awssdk newArtifactId: bedrockruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codestarnotifications newGroupId: software.amazon.awssdk newArtifactId: codestarnotifications - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-schemas newGroupId: software.amazon.awssdk newArtifactId: schemas - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sqs newGroupId: software.amazon.awssdk newArtifactId: sqs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appregistry newGroupId: software.amazon.awssdk newArtifactId: servicecatalogappregistry - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appmesh newGroupId: software.amazon.awssdk newArtifactId: appmesh - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhuborchestrator newGroupId: software.amazon.awssdk newArtifactId: migrationhuborchestrator - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-discovery newGroupId: software.amazon.awssdk newArtifactId: applicationdiscovery - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iot newGroupId: software.amazon.awssdk newArtifactId: iot - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisvideowebrtcstorage newGroupId: software.amazon.awssdk newArtifactId: kinesisvideowebrtcstorage - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ebs newGroupId: software.amazon.awssdk newArtifactId: ebs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-amplify newGroupId: software.amazon.awssdk newArtifactId: amplify - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudcontrolapi newGroupId: software.amazon.awssdk newArtifactId: cloudcontrol - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-wellarchitected newGroupId: software.amazon.awssdk newArtifactId: wellarchitected - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplaceentitlement newGroupId: software.amazon.awssdk newArtifactId: marketplaceentitlement - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrock newGroupId: software.amazon.awssdk newArtifactId: bedrock - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-redshift newGroupId: software.amazon.awssdk newArtifactId: redshift - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectcases newGroupId: software.amazon.awssdk newArtifactId: connectcases - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appflow newGroupId: software.amazon.awssdk newArtifactId: appflow - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-gamelift newGroupId: software.amazon.awssdk newArtifactId: gamelift - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudtrail newGroupId: software.amazon.awssdk newArtifactId: cloudtrail - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-supplychain newGroupId: software.amazon.awssdk newArtifactId: supplychain - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pipes newGroupId: software.amazon.awssdk newArtifactId: pipes - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatchevidently newGroupId: software.amazon.awssdk newArtifactId: evidently - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-amplifyuibuilder newGroupId: software.amazon.awssdk newArtifactId: amplifyuibuilder - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-managedblockchainquery newGroupId: software.amazon.awssdk newArtifactId: managedblockchainquery - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationinsights newGroupId: software.amazon.awssdk newArtifactId: applicationinsights - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkmessaging newGroupId: software.amazon.awssdk newArtifactId: chimesdkmessaging - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediatailor newGroupId: software.amazon.awssdk newArtifactId: mediatailor - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediapackagev2 newGroupId: software.amazon.awssdk newArtifactId: mediapackagev2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resourceexplorer2 newGroupId: software.amazon.awssdk newArtifactId: resourceexplorer2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pi newGroupId: software.amazon.awssdk newArtifactId: pi - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-emrserverless newGroupId: software.amazon.awssdk newArtifactId: emrserverless - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appconfig newGroupId: software.amazon.awssdk newArtifactId: appconfig - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-networkmonitor newGroupId: software.amazon.awssdk newArtifactId: networkmonitor - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakerfeaturestoreruntime newGroupId: software.amazon.awssdk newArtifactId: sagemakerfeaturestoreruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkidentity newGroupId: software.amazon.awssdk newArtifactId: chimesdkidentity - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-computeoptimizer newGroupId: software.amazon.awssdk newArtifactId: computeoptimizer - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectparticipant newGroupId: software.amazon.awssdk newArtifactId: connectparticipant - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mgn newGroupId: software.amazon.awssdk newArtifactId: mgn - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationcostprofiler newGroupId: software.amazon.awssdk newArtifactId: applicationcostprofiler - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-new-service-template newGroupId: software.amazon.awssdk newArtifactId: new-service-template - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-keyspaces newGroupId: software.amazon.awssdk newArtifactId: keyspaces - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iam newGroupId: software.amazon.awssdk newArtifactId: iam - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-networkfirewall newGroupId: software.amazon.awssdk newArtifactId: networkfirewall - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-redshiftdataapi newGroupId: software.amazon.awssdk newArtifactId: redshiftdata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediastore newGroupId: software.amazon.awssdk newArtifactId: mediastore - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloud9 newGroupId: software.amazon.awssdk newArtifactId: cloud9 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectwisdom newGroupId: software.amazon.awssdk newArtifactId: wisdom - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sso newGroupId: software.amazon.awssdk newArtifactId: sso - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-auditmanager newGroupId: software.amazon.awssdk newArtifactId: auditmanager - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-snowball newGroupId: software.amazon.awssdk newArtifactId: snowball - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesis newGroupId: software.amazon.awssdk newArtifactId: kinesisanalytics - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53recoverycontrolconfig newGroupId: software.amazon.awssdk newArtifactId: route53recoverycontrolconfig - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opsworks newGroupId: software.amazon.awssdk newArtifactId: opsworks - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-identitystore newGroupId: software.amazon.awssdk newArtifactId: identitystore - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectcampaign newGroupId: software.amazon.awssdk newArtifactId: connectcampaigns - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-textract newGroupId: software.amazon.awssdk newArtifactId: textract - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-redshiftserverless newGroupId: software.amazon.awssdk newArtifactId: redshiftserverless - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-eks newGroupId: software.amazon.awssdk newArtifactId: eks - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-support newGroupId: software.amazon.awssdk newArtifactId: support - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mechanicalturkrequester newGroupId: software.amazon.awssdk newArtifactId: mturk - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apigatewayv2 newGroupId: software.amazon.awssdk newArtifactId: apigatewayv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-devopsguru newGroupId: software.amazon.awssdk newArtifactId: devopsguru - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-prometheus newGroupId: software.amazon.awssdk newArtifactId: amp - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-drs newGroupId: software.amazon.awssdk newArtifactId: drs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhubconfig newGroupId: software.amazon.awssdk newArtifactId: migrationhubconfig - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kafkaconnect newGroupId: software.amazon.awssdk newArtifactId: kafkaconnect - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kafka newGroupId: software.amazon.awssdk newArtifactId: kafka - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-gluedatabrew newGroupId: software.amazon.awssdk newArtifactId: databrew - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codedeploy newGroupId: software.amazon.awssdk newArtifactId: codedeploy - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudhsmv2 newGroupId: software.amazon.awssdk newArtifactId: cloudhsmv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-batch newGroupId: software.amazon.awssdk newArtifactId: batch - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-savingsplans newGroupId: software.amazon.awssdk newArtifactId: savingsplans - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhubstrategyrecommendations newGroupId: software.amazon.awssdk newArtifactId: migrationhubstrategy - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appsync newGroupId: software.amazon.awssdk newArtifactId: appsync - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-backupgateway newGroupId: software.amazon.awssdk newArtifactId: backupgateway - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dlm newGroupId: software.amazon.awssdk newArtifactId: dlm - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-amplifybackend newGroupId: software.amazon.awssdk newArtifactId: amplifybackend - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-datazoneexternal newGroupId: software.amazon.awssdk newArtifactId: datazone - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-billingconductor newGroupId: software.amazon.awssdk newArtifactId: billingconductor - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workspacesthinclient newGroupId: software.amazon.awssdk newArtifactId: workspacesthinclient - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmsap newGroupId: software.amazon.awssdk newArtifactId: ssmsap - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-budgets newGroupId: software.amazon.awssdk newArtifactId: budgets - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mainframemodernization newGroupId: software.amazon.awssdk newArtifactId: m2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-finspace newGroupId: software.amazon.awssdk newArtifactId: finspace - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-detective newGroupId: software.amazon.awssdk newArtifactId: detective - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lambda newGroupId: software.amazon.awssdk newArtifactId: lambda - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssooidc newGroupId: software.amazon.awssdk newArtifactId: ssooidc - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-panorama newGroupId: software.amazon.awssdk newArtifactId: panorama - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotevents newGroupId: software.amazon.awssdk newArtifactId: iotevents - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-managedblockchain newGroupId: software.amazon.awssdk newArtifactId: managedblockchain - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servicediscovery newGroupId: software.amazon.awssdk newArtifactId: servicediscovery - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-waf newGroupId: software.amazon.awssdk newArtifactId: waf - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ivs newGroupId: software.amazon.awssdk newArtifactId: ivs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-directconnect newGroupId: software.amazon.awssdk newArtifactId: directconnect - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mq newGroupId: software.amazon.awssdk newArtifactId: mq - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpointsmsvoicev2 newGroupId: software.amazon.awssdk newArtifactId: pinpointsmsvoicev2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-internetmonitor newGroupId: software.amazon.awssdk newArtifactId: internetmonitor - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-artifact newGroupId: software.amazon.awssdk newArtifactId: artifact - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotsitewise newGroupId: software.amazon.awssdk newArtifactId: iotsitewise - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lexmodelsv2 newGroupId: software.amazon.awssdk newArtifactId: lexmodelsv2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lexruntimev2 newGroupId: software.amazon.awssdk newArtifactId: lexruntimev2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-serverlessapplicationrepository newGroupId: software.amazon.awssdk newArtifactId: serverlessapplicationrepository - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-eksauth newGroupId: software.amazon.awssdk newArtifactId: eksauth - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-snowdevicemanagement newGroupId: software.amazon.awssdk newArtifactId: snowdevicemanagement - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-clouddirectory newGroupId: software.amazon.awssdk newArtifactId: clouddirectory - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediapackagevod newGroupId: software.amazon.awssdk newArtifactId: mediapackagevod - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codestarconnections newGroupId: software.amazon.awssdk newArtifactId: codestarconnections - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codeartifact newGroupId: software.amazon.awssdk newArtifactId: codeartifact - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-guardduty newGroupId: software.amazon.awssdk newArtifactId: guardduty - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-worklink newGroupId: software.amazon.awssdk newArtifactId: worklink - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cleanrooms newGroupId: software.amazon.awssdk newArtifactId: cleanrooms - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-customerprofiles newGroupId: software.amazon.awssdk newArtifactId: customerprofiles - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-trustedadvisor newGroupId: software.amazon.awssdk newArtifactId: trustedadvisor - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dax newGroupId: software.amazon.awssdk newArtifactId: dax - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opsworkscm newGroupId: software.amazon.awssdk newArtifactId: opsworkscm - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-docdb newGroupId: software.amazon.awssdk newArtifactId: docdb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-acmpca newGroupId: software.amazon.awssdk newArtifactId: acmpca - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesis newGroupId: software.amazon.awssdk newArtifactId: firehose - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ivschat newGroupId: software.amazon.awssdk newArtifactId: ivschat - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-globalaccelerator newGroupId: software.amazon.awssdk newArtifactId: globalaccelerator - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ses newGroupId: software.amazon.awssdk newArtifactId: ses - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codegurureviewer newGroupId: software.amazon.awssdk newArtifactId: codegurureviewer - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lexmodelbuilding newGroupId: software.amazon.awssdk newArtifactId: lexmodelbuilding - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-medicalimaging newGroupId: software.amazon.awssdk newArtifactId: medicalimaging - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-account newGroupId: software.amazon.awssdk newArtifactId: account - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-robomaker newGroupId: software.amazon.awssdk newArtifactId: robomaker - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lex newGroupId: software.amazon.awssdk newArtifactId: lexruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-autoscaling newGroupId: software.amazon.awssdk newArtifactId: autoscaling - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-nimblestudio newGroupId: software.amazon.awssdk newArtifactId: nimble - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotjobsdataplane newGroupId: software.amazon.awssdk newArtifactId: iotjobsdataplane - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appconfigdata newGroupId: software.amazon.awssdk newArtifactId: appconfigdata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-controlcatalog newGroupId: software.amazon.awssdk newArtifactId: controlcatalog - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-greengrass newGroupId: software.amazon.awssdk newArtifactId: greengrass - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-securityhub newGroupId: software.amazon.awssdk newArtifactId: securityhub - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-timestreamquery newGroupId: software.amazon.awssdk newArtifactId: timestreamquery - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-backup newGroupId: software.amazon.awssdk newArtifactId: backup - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opensearchserverless newGroupId: software.amazon.awssdk newArtifactId: opensearchserverless - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudformation newGroupId: software.amazon.awssdk newArtifactId: cloudformation - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kendra newGroupId: software.amazon.awssdk newArtifactId: kendra - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connect newGroupId: software.amazon.awssdk newArtifactId: connect - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticache newGroupId: software.amazon.awssdk newArtifactId: elasticache - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-stepfunctions newGroupId: software.amazon.awssdk newArtifactId: sfn - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cognitoidp newGroupId: software.amazon.awssdk newArtifactId: cognitoidentityprovider - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkvoice newGroupId: software.amazon.awssdk newArtifactId: chimesdkvoice - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workspacesweb newGroupId: software.amazon.awssdk newArtifactId: workspacesweb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-comprehend newGroupId: software.amazon.awssdk newArtifactId: comprehend - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationsignals newGroupId: software.amazon.awssdk newArtifactId: applicationsignals - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacemeteringservice newGroupId: software.amazon.awssdk newArtifactId: marketplacemetering - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-devicefarm newGroupId: software.amazon.awssdk newArtifactId: devicefarm - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-rekognition newGroupId: software.amazon.awssdk newArtifactId: rekognition - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appstream newGroupId: software.amazon.awssdk newArtifactId: appstream - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-polly newGroupId: software.amazon.awssdk newArtifactId: polly - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-rds newGroupId: software.amazon.awssdk newArtifactId: rds - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pricing newGroupId: software.amazon.awssdk newArtifactId: pricing - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-simpleworkflow newGroupId: software.amazon.awssdk newArtifactId: swf - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-events newGroupId: software.amazon.awssdk newArtifactId: cloudwatchevents - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmquicksetup newGroupId: software.amazon.awssdk newArtifactId: ssmquicksetup - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-autoscalingplans newGroupId: software.amazon.awssdk newArtifactId: autoscalingplans - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-datapipeline newGroupId: software.amazon.awssdk newArtifactId: datapipeline - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-transcribe newGroupId: software.amazon.awssdk newArtifactId: transcribe - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ivsrealtime newGroupId: software.amazon.awssdk newArtifactId: ivsrealtime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-personalizeruntime newGroupId: software.amazon.awssdk newArtifactId: personalizeruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticsearch newGroupId: software.amazon.awssdk newArtifactId: elasticsearch - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codecommit newGroupId: software.amazon.awssdk newArtifactId: codecommit - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resourcegroupstaggingapi newGroupId: software.amazon.awssdk newArtifactId: resourcegroupstaggingapi - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-forecastquery newGroupId: software.amazon.awssdk newArtifactId: forecastquery - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-healthlake newGroupId: software.amazon.awssdk newArtifactId: healthlake - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iamrolesanywhere newGroupId: software.amazon.awssdk newArtifactId: rolesanywhere - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-personalizeevents newGroupId: software.amazon.awssdk newArtifactId: personalizeevents - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apigatewaymanagementapi newGroupId: software.amazon.awssdk newArtifactId: apigatewaymanagementapi - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-launchwizard newGroupId: software.amazon.awssdk newArtifactId: launchwizard - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-xray newGroupId: software.amazon.awssdk newArtifactId: xray - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssoadmin newGroupId: software.amazon.awssdk newArtifactId: ssoadmin - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-api-gateway newGroupId: software.amazon.awssdk newArtifactId: apigateway - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhubrefactorspaces newGroupId: software.amazon.awssdk newArtifactId: migrationhubrefactorspaces - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ram newGroupId: software.amazon.awssdk newArtifactId: ram - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codeconnections newGroupId: software.amazon.awssdk newArtifactId: codeconnections - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-efs newGroupId: software.amazon.awssdk newArtifactId: efs - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrockagentruntime newGroupId: software.amazon.awssdk newArtifactId: bedrockagentruntime - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dataexchange newGroupId: software.amazon.awssdk newArtifactId: dataexchange - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sts newGroupId: software.amazon.awssdk newArtifactId: sts - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemaker newGroupId: software.amazon.awssdk newArtifactId: sagemaker - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-finspacedata newGroupId: software.amazon.awssdk newArtifactId: finspacedata - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacecatalog newGroupId: software.amazon.awssdk newArtifactId: marketplacecatalog - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-acm newGroupId: software.amazon.awssdk newArtifactId: acm - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-athena newGroupId: software.amazon.awssdk newArtifactId: athena - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53 newGroupId: software.amazon.awssdk newArtifactId: route53 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codegurusecurity newGroupId: software.amazon.awssdk newArtifactId: codegurusecurity - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-tnb newGroupId: software.amazon.awssdk newArtifactId: tnb - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ec2 newGroupId: software.amazon.awssdk newArtifactId: ec2 - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apprunner newGroupId: software.amazon.awssdk newArtifactId: apprunner - newVersion: 2.46.0 + newVersion: 2.46.10 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lookoutmetrics newGroupId: software.amazon.awssdk newArtifactId: lookoutmetrics - newVersion: 2.46.0 + newVersion: 2.46.10 ``` diff --git a/docs/recipes/csharp/changemethodname.md b/docs/recipes/csharp/changemethodname.md index 11f717b86a..13949a5d59 100644 --- a/docs/recipes/csharp/changemethodname.md +++ b/docs/recipes/csharp/changemethodname.md @@ -53,6 +53,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change dataformat fury to fury in xml/java dsl.](/recipes/apache/camel/upgrade/camel413/furydsl.md) +* [Change method name](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changemethodname) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedchoicembeanmethodname.md) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedfailoverloadbalancermbeanmethodname.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) @@ -88,6 +89,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from Micronaut 2.x to 3.x](/recipes/java/micronaut/micronaut2to3migration.md) * [Migrate from springdoc-openapi-common to springdoc-openapi-starter-common](/recipes/java/springdoc/migratespringdoccommon.md) * [Migrate packages to modular starters](/recipes/java/spring/boot4/migrateautoconfigurepackages.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x deprecated methods from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_deprecatedmethods.md) * [Migrate to Hibernate 6.0.x (Moderne Edition)](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate60-moderne-edition) * [Migrate to Hibernate 7.0.x (Community Edition)](/recipes/hibernate/migratetohibernate70-community-edition.md) @@ -149,6 +151,7 @@ This recipe is used as part of the following composite recipes: * [Replace deprecated String case conversions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedstringcaseconversions) * [Replace deprecated `appendln` with `appendLine`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedappendln) * [Replace deprecated setters in `RestTemplateBuilder`](/recipes/java/spring/boot3/replaceresttemplatebuildermethods.md) +* [Spring Boot 4.0 Module Starter Relocations](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot4/modulestarterrelocations) * [The header name for the List metadata has changed](/recipes/apache/camel/upgrade/camel43/kafkametadata.md) * [Upgrade to JUnit 5.14](/recipes/java/testing/junit5/upgradetojunit514.md) * [Upgrade to SpringDoc 2.1](/recipes/java/springdoc/upgradespringdoc_2.md) diff --git a/docs/recipes/csharp/changepackage.md b/docs/recipes/csharp/changepackage.md index 55d5f34b95..daccd6acf5 100644 --- a/docs/recipes/csharp/changepackage.md +++ b/docs/recipes/csharp/changepackage.md @@ -44,6 +44,7 @@ This recipe is used as part of the following composite recipes: * [Apply Axon Framework 5 serialization → conversion rename](/recipes/axonframework/migration/axon4toaxon5conversion.md) * [ArchUnit 0.x upgrade](/recipes/java/testing/archunit/archunit0to1migration.md) * [Change Tapestry 4 packages to Tapestry 5](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/tapestry/changetapestrypackages) +* [Change package](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changepackage) * [DataNucleus 4.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_4_0.md) * [DataNucleus 5.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_0.md) * [DataNucleus 5.2 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_2.md) diff --git a/docs/recipes/csharp/changetype.md b/docs/recipes/csharp/changetype.md index c2e5886e91..88ff1f5a04 100644 --- a/docs/recipes/csharp/changetype.md +++ b/docs/recipes/csharp/changetype.md @@ -52,6 +52,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) +* [Change type](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changetype) * [Changed types of camel AI nested headers classes](/recipes/apache/camel/upgrade/camel415/ainestedheadersclasses.md) * [DataNucleus 4.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_4_0.md) * [DataNucleus 5.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_5_0.md) diff --git a/docs/recipes/csharp/deletemethodargument.md b/docs/recipes/csharp/deletemethodargument.md index bb039e762a..86f446b66a 100644 --- a/docs/recipes/csharp/deletemethodargument.md +++ b/docs/recipes/csharp/deletemethodargument.md @@ -37,8 +37,10 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac This recipe is used as part of the following composite recipes: +* [Delete method argument](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/deletemethodargument) * [Migrate Apache HttpCore Nio Input Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_nioinputbuffers.md) * [Migrate Apache HttpCore Nio Output Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_niooutputbuffers.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5.md) * [Migrate to Hibernate 7.2.x](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate72) * [Migrate to Kafka 4.0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kafka/migratetokafka40) diff --git a/docs/recipes/csharp/reordermethodarguments.md b/docs/recipes/csharp/reordermethodarguments.md index 2cc4896f17..8e62a8fcee 100644 --- a/docs/recipes/csharp/reordermethodarguments.md +++ b/docs/recipes/csharp/reordermethodarguments.md @@ -45,6 +45,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to ApacheHttpClient 5.x Classes Namespace from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_classmapping.md) * [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) * [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) +* [Reorder method arguments](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/reordermethodarguments) * [Reorder the arguments of `RequestBody.create()`](/recipes/okhttp/reorderrequestbodycreatearguments.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/java/migrate/jakarta/removalsservletjakarta10.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/oracle/weblogic/rewrite/jakarta/removalsservletjakarta9.md) diff --git a/docs/recipes/github/migratetibdexgithubapptokentoactions.md b/docs/recipes/github/migratetibdexgithubapptokentoactions.md index b910255086..78fa283db8 100644 --- a/docs/recipes/github/migratetibdexgithubapptokentoactions.md +++ b/docs/recipes/github/migratetibdexgithubapptokentoactions.md @@ -11,7 +11,7 @@ import RunRecipe from '@site/src/components/RunRecipe'; **org.openrewrite.github.MigrateTibdexGitHubAppTokenToActions** -_Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case._ +_Migrates from the deprecated `tibdex/github-app-token@v2` to `actions/create-github-app-token@v3`, which runs on Node.js 24 instead of the deprecated Node.js 20. Renames the `app_id`, `private_key`, and `github_api_url` inputs to their kebab-case equivalents `app-id`, `private-key`, and `github-api-url`._ ### Tags @@ -38,17 +38,16 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change GitHub Action](../github/changeaction) * oldAction: `tibdex/github-app-token` * newAction: `actions/create-github-app-token` - * newVersion: `v2` + * newVersion: `v3` * [Change key](../yaml/changekey) * oldKeyPath: `$.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with.app_id` * newKey: `app-id` * [Change key](../yaml/changekey) * oldKeyPath: `$.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with.private_key` * newKey: `private-key` -* [Merge YAML snippet](../yaml/mergeyaml) - * key: `$.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with` - * yaml: `owner: ${{ github.repository_owner }}` - * acceptTheirs: `false` +* [Change key](../yaml/changekey) + * oldKeyPath: `$.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with.github_api_url` + * newKey: `github-api-url` @@ -60,7 +59,7 @@ type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.github.MigrateTibdexGitHubAppTokenToActions displayName: Migrate from tibdex/github-app-token to actions/create-github-app-token description: | - Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case. + Migrates from the deprecated `tibdex/github-app-token@v2` to `actions/create-github-app-token@v3`, which runs on Node.js 24 instead of the deprecated Node.js 20. Renames the `app_id`, `private_key`, and `github_api_url` inputs to their kebab-case equivalents `app-id`, `private-key`, and `github-api-url`. tags: - github - actions @@ -68,17 +67,16 @@ recipeList: - org.openrewrite.github.ChangeAction: oldAction: tibdex/github-app-token newAction: actions/create-github-app-token - newVersion: v2 + newVersion: v3 - org.openrewrite.yaml.ChangeKey: oldKeyPath: $.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with.app_id newKey: app-id - org.openrewrite.yaml.ChangeKey: oldKeyPath: $.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with.private_key newKey: private-key - - org.openrewrite.yaml.MergeYaml: - key: $.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with - yaml: owner: ${{ github.repository_owner }} - acceptTheirs: false + - org.openrewrite.yaml.ChangeKey: + oldKeyPath: $.jobs..[?(@.uses =~ 'actions/create-github-app-token.*')].with.github_api_url + newKey: github-api-url ``` diff --git a/docs/recipes/gradle/adddependency.md b/docs/recipes/gradle/adddependency.md index 2761d351a9..ab8114f92c 100644 --- a/docs/recipes/gradle/adddependency.md +++ b/docs/recipes/gradle/adddependency.md @@ -44,6 +44,7 @@ This recipe is used as part of the following composite recipes: * [Add JUnit Platform Launcher](/recipes/gradle/addjunitplatformlauncher.md) * [Add `lombok-mapstruct-binding` when both MapStruct and Lombok are used](/recipes/java/migrate/addlombokmapstructbinding.md) * [Enable Lombok annotation processor](/recipes/java/migrate/enablelombokannotationprocessor.md) +* [JUnit 6 migration from JUnit 5.x](/recipes/java/testing/junit6/junit5to6migration.md) * [Update to Micronaut Validation 4.x](/recipes/java/micronaut/updatemicronautvalidation.md) diff --git a/docs/recipes/gradle/gradle9/README.md b/docs/recipes/gradle/gradle9/README.md index be496708ad..9f87b31c4a 100644 --- a/docs/recipes/gradle/gradle9/README.md +++ b/docs/recipes/gradle/gradle9/README.md @@ -10,7 +10,9 @@ description: Gradle9 OpenRewrite recipes. * [Replace spread-`all*` calls in `configurations` blocks with `configurations.all \{ \}`](./rewritespreadallinconfigurationsblock.md) * [Use `application \{ mainClass \}` instead of `mainClassName`](./usemainclasspropertyforapplication.md) * [Use `mainClass` instead of `main` for `JavaExec` tasks](./usemainclassproperty.md) +* [Use `matching(Closure)` instead of `findAll(Closure)` on Gradle container collections](./usematchinginsteadoffindall.md) * [Use one dependency declaration per statement](./onedependencydeclarationperstatement.md) +* [Use `project(...)` dependency notation instead of the current project's module coordinates](./useprojectdependencyinsteadofmodulecoordinates.md) * [Use `version \{ \}` closure instead of `version = \{ \}` assignment](./useversionclosure.md) diff --git a/docs/recipes/gradle/gradle9/usematchinginsteadoffindall.md b/docs/recipes/gradle/gradle9/usematchinginsteadoffindall.md new file mode 100644 index 0000000000..95d9adc2fd --- /dev/null +++ b/docs/recipes/gradle/gradle9/usematchinginsteadoffindall.md @@ -0,0 +1,126 @@ +--- +title: "Use `matching(Closure)` instead of `findAll(Closure)` on Gradle container collections" +sidebar_label: "Use `matching(Closure)` instead of `findAll(Closure)` on Gradle container collections" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Use `matching(Closure)` instead of `findAll(Closure)` on Gradle container collections + +**org.openrewrite.gradle.gradle9.UseMatchingInsteadOfFindAll** + +_Gradle 9.4 deprecates the Groovy `DomainObjectCollection.findAll(Closure)` overload on containers such as `tasks`, `configurations`, and `sourceSets`. It is replaced by the lazy `DomainObjectCollection.matching(Closure)`, which returns a live collection that only filters elements as they are needed by the build. This recipe only swaps the method name, leaving the closure argument unchanged, rewriting `findAll { ... }` to `matching { ... }` when the receiver is a known Gradle container collection._ + +## Recipe source + +[GitHub: UseMatchingInsteadOfFindAll.java](https://github.com/openrewrite/rewrite/blob/main/rewrite-gradle/src/main/java/org/openrewrite/gradle/gradle9/UseMatchingInsteadOfFindAll.java), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-gradle/) + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Gradle 9 from Gradle 8](/recipes/gradle/migratetogradle9.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/gradle/gradle9/useprojectdependencyinsteadofmodulecoordinates.md b/docs/recipes/gradle/gradle9/useprojectdependencyinsteadofmodulecoordinates.md new file mode 100644 index 0000000000..f5e1817cdc --- /dev/null +++ b/docs/recipes/gradle/gradle9/useprojectdependencyinsteadofmodulecoordinates.md @@ -0,0 +1,126 @@ +--- +title: "Use `project(...)` dependency notation instead of the current project's module coordinates" +sidebar_label: "Use `project(...)` dependency notation instead of the current project's module coordinates" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Use `project(...)` dependency notation instead of the current project's module coordinates + +**org.openrewrite.gradle.gradle9.UseProjectDependencyInsteadOfModuleCoordinates** + +_Gradle 9.3 deprecates depending on the current project by its own `group:name:version` module coordinates. In Gradle 9.x such a declaration resolves to the project's local outgoing variants, but in Gradle 10 it will instead attempt resolution from a repository. This recipe replaces a dependency declaration whose coordinates match the current project with the equivalent `project("")` notation. Requires the `GradleProject` marker (available when parsed by the OpenRewrite Gradle plugin) to know the current project's coordinates and path._ + +## Recipe source + +[GitHub: UseProjectDependencyInsteadOfModuleCoordinates.java](https://github.com/openrewrite/rewrite/blob/main/rewrite-gradle/src/main/java/org/openrewrite/gradle/gradle9/UseProjectDependencyInsteadOfModuleCoordinates.java), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-gradle/) + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Gradle 9 from Gradle 8](/recipes/gradle/migratetogradle9.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/gradle/migratetogradle9.md b/docs/recipes/gradle/migratetogradle9.md index a58e1df2d8..1e9bce033b 100644 --- a/docs/recipes/gradle/migratetogradle9.md +++ b/docs/recipes/gradle/migratetogradle9.md @@ -41,6 +41,8 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Move `sourceCompatibility` and `targetCompatibility` into the `java \{ \}` extension block](../gradle/gradle9/usejavaextensionblock) * [Replace spread-`all*` calls in `configurations` blocks with `configurations.all \{ \}`](../gradle/gradle9/rewritespreadallinconfigurationsblock) * [Use `version \{ \}` closure instead of `version = \{ \}` assignment](../gradle/gradle9/useversionclosure) +* [Use `project(...)` dependency notation instead of the current project's module coordinates](../gradle/gradle9/useprojectdependencyinsteadofmodulecoordinates) +* [Use `matching(Closure)` instead of `findAll(Closure)` on Gradle container collections](../gradle/gradle9/usematchinginsteadoffindall) @@ -65,6 +67,8 @@ recipeList: - org.openrewrite.gradle.gradle9.UseJavaExtensionBlock - org.openrewrite.gradle.gradle9.RewriteSpreadAllInConfigurationsBlock - org.openrewrite.gradle.gradle9.UseVersionClosure + - org.openrewrite.gradle.gradle9.UseProjectDependencyInsteadOfModuleCoordinates + - org.openrewrite.gradle.gradle9.UseMatchingInsteadOfFindAll ``` diff --git a/docs/recipes/hibernate/README.md b/docs/recipes/hibernate/README.md index b60030a390..b849117a0f 100644 --- a/docs/recipes/hibernate/README.md +++ b/docs/recipes/hibernate/README.md @@ -32,6 +32,8 @@ _Recipes that include further recipes, often including the individual recipes be * [AddScalarPreferStandardBasicTypesForHibernate5](./addscalarpreferstandardbasictypes.md) * [Migrate Hibernate Types to Hypersistence Utils 6.2](./migratetohypersistenceutilshibernate62.md) * [Migrate Hibernate Types to Hypersistence Utils 6.3](./migratetohypersistenceutilshibernate63.md) +* [Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0](./migratetohypersistenceutilshibernate70.md) +* [Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1](./migratetohypersistenceutilshibernate71.md) * [Migrate `UserType` to Hibernate 6](./migrateusertype.md) * [Migration of `ResultCheckStyle` to `Expectation`](./migrateresultcheckstyletoexpectation.md) * [Remove invalid `@GeneratedValue` annotation](./removeinvalidhibernategeneratedvalueannotation.md) diff --git a/docs/recipes/hibernate/migratetohibernate70-community-edition.md b/docs/recipes/hibernate/migratetohibernate70-community-edition.md index 94d4e0eeb5..536651f50a 100644 --- a/docs/recipes/hibernate/migratetohibernate70-community-edition.md +++ b/docs/recipes/hibernate/migratetohibernate70-community-edition.md @@ -37,6 +37,7 @@ This recipe is available under the [Moderne Source Available License](https://do **Recipes** * [Migrate to Hibernate 6.6.x (Community Edition)](../hibernate/migratetohibernate66-community-edition) +* [Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0](../hibernate/migratetohypersistenceutilshibernate70) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` @@ -97,6 +98,7 @@ preconditions: - org.openrewrite.Singleton recipeList: - org.openrewrite.hibernate.MigrateToHibernate66 + - org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate70 - org.openrewrite.java.dependencies.UpgradeDependencyVersion: groupId: org.hibernate.orm artifactId: "*" diff --git a/docs/recipes/hibernate/migratetohibernate71-community-edition.md b/docs/recipes/hibernate/migratetohibernate71-community-edition.md index 52ad9d519e..fd7aebdb9c 100644 --- a/docs/recipes/hibernate/migratetohibernate71-community-edition.md +++ b/docs/recipes/hibernate/migratetohibernate71-community-edition.md @@ -37,6 +37,7 @@ This recipe is available under the [Moderne Source Available License](https://do **Recipes** * [Migrate to Hibernate 7.0.x (Community Edition)](../hibernate/migratetohibernate70-community-edition) +* [Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1](../hibernate/migratetohypersistenceutilshibernate71) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` @@ -57,6 +58,7 @@ preconditions: - org.openrewrite.Singleton recipeList: - org.openrewrite.hibernate.MigrateToHibernate70 + - org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate71 - org.openrewrite.java.dependencies.UpgradeDependencyVersion: groupId: org.hibernate.orm artifactId: "*" diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate62.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate62.md index 4f6a73dc33..c36878d820 100644 --- a/docs/recipes/hibernate/migratetohypersistenceutilshibernate62.md +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate62.md @@ -37,7 +37,7 @@ This recipe is available under the [Moderne Source Available License](https://do * oldArtifactId: `hypersistence-utils-hibernate-60` * newGroupId: `io.hypersistence` * newArtifactId: `hypersistence-utils-hibernate-62` - * newVersion: `3.7.x` + * newVersion: `3.9.x` @@ -58,7 +58,7 @@ recipeList: oldArtifactId: hypersistence-utils-hibernate-60 newGroupId: io.hypersistence newArtifactId: hypersistence-utils-hibernate-62 - newVersion: 3.7.x + newVersion: 3.9.x ``` diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate63.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate63.md index b84291c9eb..931936790d 100644 --- a/docs/recipes/hibernate/migratetohypersistenceutilshibernate63.md +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate63.md @@ -37,7 +37,7 @@ This recipe is available under the [Moderne Source Available License](https://do * oldArtifactId: `hypersistence-utils-hibernate-62` * newGroupId: `io.hypersistence` * newArtifactId: `hypersistence-utils-hibernate-63` - * newVersion: `3.8.x` + * newVersion: `3.15.x` @@ -58,7 +58,7 @@ recipeList: oldArtifactId: hypersistence-utils-hibernate-62 newGroupId: io.hypersistence newArtifactId: hypersistence-utils-hibernate-63 - newVersion: 3.8.x + newVersion: 3.15.x ``` diff --git a/docs/recipes/java/migrate/addsurefirefailsafearglineformockito.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate70.md similarity index 66% rename from docs/recipes/java/migrate/addsurefirefailsafearglineformockito.md rename to docs/recipes/hibernate/migratetohypersistenceutilshibernate70.md index 0eb771ed34..7010785f29 100644 --- a/docs/recipes/java/migrate/addsurefirefailsafearglineformockito.md +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate70.md @@ -1,23 +1,23 @@ --- -title: "Add surefire `--add-opens` for Mockito/ByteBuddy" -sidebar_label: "Add surefire `--add-opens` for Mockito/ByteBuddy" +title: "Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0" +sidebar_label: "Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import RunRecipe from '@site/src/components/RunRecipe'; -# Add surefire `--add-opens` for Mockito/ByteBuddy +# Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0 -**org.openrewrite.java.migrate.AddSurefireFailsafeArgLineForMockito** +**org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate70** -_Adds `--add-opens` JVM arguments required by Mockito and ByteBuddy to the Maven Surefire and Failsafe plugin `argLine` configuration. Only applied when the project depends on Mockito._ +_This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-63` to `io.hypersistence:hypersistence-utils-hibernate-70`._ ## Recipe source -[GitHub: java-version-25.yml](https://github.com/openrewrite/rewrite-migrate-java/blob/main/src/main/resources/META-INF/rewrite/java-version-25.yml), -[Issue Tracker](https://github.com/openrewrite/rewrite-migrate-java/issues), -[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-migrate-java/) +[GitHub: hibernate-7.0.yml](https://github.com/openrewrite/rewrite-hibernate/blob/main/src/main/resources/META-INF/rewrite/hibernate-7.0.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-hibernate/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-hibernate/) This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). @@ -28,14 +28,16 @@ This recipe is available under the [Moderne Source Available License](https://do **Preconditions** -* [Module has dependency](../../java/dependencies/search/modulehasdependency) - * groupIdPattern: `org.mockito` - * artifactIdPattern: `mockito-*` +* [Singleton](../core/singleton) **Recipes** -* [Add `argLine` to surefire and failsafe plugins](../../java/migrate/addsurefirefailsafeargline) - * argLine: `--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED -Dnet.bytebuddy.experimental=true` +* [Change Gradle or Maven dependency](../java/dependencies/changedependency) + * oldGroupId: `io.hypersistence` + * oldArtifactId: `hypersistence-utils-hibernate-63` + * newGroupId: `io.hypersistence` + * newArtifactId: `hypersistence-utils-hibernate-70` + * newVersion: `3.15.x` @@ -44,17 +46,19 @@ This recipe is available under the [Moderne Source Available License](https://do ```yaml --- type: specs.openrewrite.org/v1beta/recipe -name: org.openrewrite.java.migrate.AddSurefireFailsafeArgLineForMockito -displayName: Add surefire `--add-opens` for Mockito/ByteBuddy +name: org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate70 +displayName: Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0 description: | - Adds `--add-opens` JVM arguments required by Mockito and ByteBuddy to the Maven Surefire and Failsafe plugin `argLine` configuration. Only applied when the project depends on Mockito. + This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-63` to `io.hypersistence:hypersistence-utils-hibernate-70`. preconditions: - - org.openrewrite.java.dependencies.search.ModuleHasDependency: - groupIdPattern: org.mockito - artifactIdPattern: mockito-* + - org.openrewrite.Singleton recipeList: - - org.openrewrite.java.migrate.AddSurefireFailsafeArgLine: - argLine: --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED -Dnet.bytebuddy.experimental=true + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: io.hypersistence + oldArtifactId: hypersistence-utils-hibernate-63 + newGroupId: io.hypersistence + newArtifactId: hypersistence-utils-hibernate-70 + newVersion: 3.15.x ``` @@ -64,17 +68,17 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Upgrade plugins to Java 25 compatible versions](/recipes/java/migrate/upgradepluginsforjava25.md) +* [Migrate to Hibernate 7.0.x (Community Edition)](/recipes/hibernate/migratetohibernate70-community-edition.md) ## Usage @@ -82,7 +86,7 @@ This recipe is used as part of the following composite recipes: import RecipeCallout from '@site/src/components/ModerneLink'; - + The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate71.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate71.md new file mode 100644 index 0000000000..86b7c6c24b --- /dev/null +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate71.md @@ -0,0 +1,166 @@ +--- +title: "Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1" +sidebar_label: "Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1 + +**org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate71** + +_This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-70` to `io.hypersistence:hypersistence-utils-hibernate-71`._ + +## Recipe source + +[GitHub: hibernate-7.1.yml](https://github.com/openrewrite/rewrite-hibernate/blob/main/src/main/resources/META-INF/rewrite/hibernate-7.1.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-hibernate/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-hibernate/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Definition + + + +**Preconditions** + +* [Singleton](../core/singleton) + +**Recipes** + +* [Change Gradle or Maven dependency](../java/dependencies/changedependency) + * oldGroupId: `io.hypersistence` + * oldArtifactId: `hypersistence-utils-hibernate-70` + * newGroupId: `io.hypersistence` + * newArtifactId: `hypersistence-utils-hibernate-71` + * newVersion: `3.15.x` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate71 +displayName: Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1 +description: | + This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-70` to `io.hypersistence:hypersistence-utils-hibernate-71`. +preconditions: + - org.openrewrite.Singleton +recipeList: + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: io.hypersistence + oldArtifactId: hypersistence-utils-hibernate-70 + newGroupId: io.hypersistence + newArtifactId: hypersistence-utils-hibernate-71 + newVersion: 3.15.x + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Hibernate 7.1.x (Community Edition)](/recipes/hibernate/migratetohibernate71-community-edition.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/addcommenttomethodinvocations.md b/docs/recipes/java/addcommenttomethodinvocations.md index 51bc7531a6..ddc9913da3 100644 --- a/docs/recipes/java/addcommenttomethodinvocations.md +++ b/docs/recipes/java/addcommenttomethodinvocations.md @@ -42,6 +42,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from SpringFox Swagger to SpringDoc and OpenAPI](/recipes/java/springdoc/springfoxtospringdoc.md) * [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) * [Replace deprecated RequestMatcherProvider with new API](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot4/replacedeprecatedrequestmatcherprovider) +* [Spring Security 7 modularization](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/security7/modularizespringsecurity7) ## Example diff --git a/docs/recipes/java/addliteralmethodargument.md b/docs/recipes/java/addliteralmethodargument.md index 559806f004..edb40360ab 100644 --- a/docs/recipes/java/addliteralmethodargument.md +++ b/docs/recipes/java/addliteralmethodargument.md @@ -35,6 +35,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac This recipe is used as part of the following composite recipes: +* [Add literal method argument](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/addliteralmethodargument) * [Migrate deprecated APIs removed in Spring Framework 7.0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/framework7/migratedeprecatedapis) * [Migrate removed Spring `Assert` methods](/recipes/java/spring/framework/migratespringassert.md) diff --git a/docs/recipes/java/changemethodname.md b/docs/recipes/java/changemethodname.md index 8a1a2c1b81..1d0fe4fe93 100644 --- a/docs/recipes/java/changemethodname.md +++ b/docs/recipes/java/changemethodname.md @@ -49,6 +49,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change dataformat fury to fury in xml/java dsl.](/recipes/apache/camel/upgrade/camel413/furydsl.md) +* [Change method name](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changemethodname) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedchoicembeanmethodname.md) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedfailoverloadbalancermbeanmethodname.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) @@ -84,6 +85,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from Micronaut 2.x to 3.x](/recipes/java/micronaut/micronaut2to3migration.md) * [Migrate from springdoc-openapi-common to springdoc-openapi-starter-common](/recipes/java/springdoc/migratespringdoccommon.md) * [Migrate packages to modular starters](/recipes/java/spring/boot4/migrateautoconfigurepackages.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x deprecated methods from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_deprecatedmethods.md) * [Migrate to Hibernate 6.0.x (Moderne Edition)](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate60-moderne-edition) * [Migrate to Hibernate 7.0.x (Community Edition)](/recipes/hibernate/migratetohibernate70-community-edition.md) @@ -145,6 +147,7 @@ This recipe is used as part of the following composite recipes: * [Replace deprecated String case conversions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedstringcaseconversions) * [Replace deprecated `appendln` with `appendLine`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedappendln) * [Replace deprecated setters in `RestTemplateBuilder`](/recipes/java/spring/boot3/replaceresttemplatebuildermethods.md) +* [Spring Boot 4.0 Module Starter Relocations](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot4/modulestarterrelocations) * [The header name for the List metadata has changed](/recipes/apache/camel/upgrade/camel43/kafkametadata.md) * [Upgrade to JUnit 5.14](/recipes/java/testing/junit5/upgradetojunit514.md) * [Upgrade to SpringDoc 2.1](/recipes/java/springdoc/upgradespringdoc_2.md) diff --git a/docs/recipes/java/changepackage.md b/docs/recipes/java/changepackage.md index a2087edb34..e1c5be69dd 100644 --- a/docs/recipes/java/changepackage.md +++ b/docs/recipes/java/changepackage.md @@ -40,6 +40,7 @@ This recipe is used as part of the following composite recipes: * [Apply Axon Framework 5 serialization → conversion rename](/recipes/axonframework/migration/axon4toaxon5conversion.md) * [ArchUnit 0.x upgrade](/recipes/java/testing/archunit/archunit0to1migration.md) * [Change Tapestry 4 packages to Tapestry 5](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/tapestry/changetapestrypackages) +* [Change package](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changepackage) * [DataNucleus 4.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_4_0.md) * [DataNucleus 5.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_0.md) * [DataNucleus 5.2 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_2.md) diff --git a/docs/recipes/java/changetype.md b/docs/recipes/java/changetype.md index f29cfcdf75..8016a7663f 100644 --- a/docs/recipes/java/changetype.md +++ b/docs/recipes/java/changetype.md @@ -48,6 +48,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) +* [Change type](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changetype) * [Changed types of camel AI nested headers classes](/recipes/apache/camel/upgrade/camel415/ainestedheadersclasses.md) * [DataNucleus 4.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_4_0.md) * [DataNucleus 5.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_5_0.md) diff --git a/docs/recipes/java/deletemethodargument.md b/docs/recipes/java/deletemethodargument.md index 5a8605343e..215757e40d 100644 --- a/docs/recipes/java/deletemethodargument.md +++ b/docs/recipes/java/deletemethodargument.md @@ -33,8 +33,10 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac This recipe is used as part of the following composite recipes: +* [Delete method argument](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/deletemethodargument) * [Migrate Apache HttpCore Nio Input Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_nioinputbuffers.md) * [Migrate Apache HttpCore Nio Output Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_niooutputbuffers.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5.md) * [Migrate to Hibernate 7.2.x](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate72) * [Migrate to Kafka 4.0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kafka/migratetokafka40) diff --git a/docs/recipes/java/dependencies/adddependency.md b/docs/recipes/java/dependencies/adddependency.md index 12fc7687c1..cfb6d03ea5 100644 --- a/docs/recipes/java/dependencies/adddependency.md +++ b/docs/recipes/java/dependencies/adddependency.md @@ -102,6 +102,7 @@ This recipe is used as part of the following composite recipes: * [Migrate Spring Cloud Config Client to Quarkus Config](/recipes/quarkus/spring/migratespringcloudconfig.md) * [Migrate Spring Cloud Service Discovery to Quarkus](/recipes/quarkus/spring/migratespringcloudservicediscovery.md) * [Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0](/recipes/java/spring/cloud2022/migratecloudsleuthtomicrometertracing.md) +* [Migrate Spring Retry to Spring Resilience](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot4/migratespringretry) * [Migrate Spring Validation to Quarkus](/recipes/quarkus/spring/migratespringvalidation.md) * [Migrate TestNG assertions to AssertJ](/recipes/java/testing/testng/testngtoassertj.md) * [Migrate `@EnableXyz` annotations to Quarkus extensions](/recipes/quarkus/spring/enableannotationstoquarkusdependencies.md) diff --git a/docs/recipes/java/dependencies/changedependency.md b/docs/recipes/java/dependencies/changedependency.md index e541d5ae44..9c22f641f3 100644 --- a/docs/recipes/java/dependencies/changedependency.md +++ b/docs/recipes/java/dependencies/changedependency.md @@ -52,6 +52,8 @@ This recipe is used as part of the following composite recipes: * [Migrate Hibernate Types to Hypersistence Utils 6.0](/recipes/hibernate/migratetohypersistenceutilshibernate60.md) * [Migrate Hibernate Types to Hypersistence Utils 6.2](/recipes/hibernate/migratetohypersistenceutilshibernate62.md) * [Migrate Hibernate Types to Hypersistence Utils 6.3](/recipes/hibernate/migratetohypersistenceutilshibernate63.md) +* [Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0](/recipes/hibernate/migratetohypersistenceutilshibernate70.md) +* [Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1](/recipes/hibernate/migratetohypersistenceutilshibernate71.md) * [Migrate Hibernate dependencies to 6.0.x](/recipes/hibernate/migratetohibernatedependencies60.md) * [Migrate Jackson from javax to jakarta namespace](/recipes/java/migrate/jakarta/jacksonjavaxtojakarta.md) * [Migrate Jackson from javax to jakarta namespace](/recipes/quarkus/updates/core/quarkus30/jacksonjavaxtojakarta.md) @@ -210,6 +212,7 @@ This recipe is used as part of the following composite recipes: * [io.quarkus.updates.core.quarkus33.GraalVMSubstitutionsArtifact](/recipes/quarkus/updates/core/quarkus33/graalvmsubstitutionsartifact.md) * [io.quarkus.updates.core.quarkus331.JUnitRelocations](/recipes/quarkus/updates/core/quarkus331/junitrelocations.md) * [io.quarkus.updates.core.quarkus331.Testcontainers2](/recipes/quarkus/updates/core/quarkus331/testcontainers2.md) +* [io.quarkus.updates.core.quarkus337.PanacheNextRelocations](/recipes/quarkus/updates/core/quarkus337/panachenextrelocations.md) * [io.quarkus.updates.core.quarkus36.JaegerSmallRyeOpenTracing](/recipes/quarkus/updates/core/quarkus36/jaegersmallryeopentracing.md) * [io.quarkus.updates.core.quarkus37.HibernateSearchOutboxPolling](/recipes/quarkus/updates/core/quarkus37/hibernatesearchoutboxpolling.md) * [io.quarkus.updates.core.quarkus37.ResteasyClientRenaming](/recipes/quarkus/updates/core/quarkus37/resteasyclientrenaming.md) diff --git a/docs/recipes/java/jackson/README.md b/docs/recipes/java/jackson/README.md index a1f204605d..a0daffdd84 100644 --- a/docs/recipes/java/jackson/README.md +++ b/docs/recipes/java/jackson/README.md @@ -20,6 +20,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Migrate from Jackson Codehaus (legacy) to Jackson FasterXML](./codehaustofasterxml.md) * [Migrate relocated feature constants to DateTimeFeature and EnumFeature](./upgradejackson_2_3_relocatedfeatureconstants.md) * [Migrates from Jackson 2.x to Jackson 3.x](./upgradejackson_2_3.md) +* [Modernize legacy `jackson-core` feature constants](./upgradejackson_2_3_modernizejacksoncorefeatures.md) * [Remove redundant Jackson 3 feature flag configurations](./upgradejackson_2_3_removeredundantfeatureflags.md) * [Rename Jackson 2.x methods to 3.x equivalents](./upgradejackson_2_3_methodrenames.md) * [Rename Jackson 2.x methods to 3.x equivalents for JsonGenerator](./upgradejackson_2_3_jsongeneratormethodrenames.md) @@ -36,6 +37,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Add `@JsonCreator` to non-public constructors](./addjsoncreatortoprivateconstructors.md) * [Add comment to SimpleModule method calls on modules that no longer extend SimpleModule](./commentoutsimplemodulemethodcalls.md) * [Migrate `JSONNode` field iterator for Jackson 3](./jackson3jsonnodefielditerators.md) +* [Migrate factory setter calls to builder pattern](./migratefactorysetterstobuilder.md) * [Migrate mapper setter calls to builder pattern](./migratemappersetterstobuilder.md) * [Remove redundant `@JsonProperty` argument](./removeredundantjsonpropertyvalue.md) * [Remove redundant Jackson 3 feature flag configurations](./removeredundantfeatureflags.md) @@ -49,6 +51,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Simplify catch clauses for Jackson exceptions](./simplifyjacksonexceptioncatch.md) * [Update configuration of serialization inclusion in `ObjectMapper` for Jackson 3](./updateserializationinclusionconfiguration.md) * [Update `lombok.config` for Jackson 3 compatibility](./lombokjacksonizedconfig.md) +* [Use `JsonFactory.builder()` over `new JsonFactoryBuilder()`](./usejsonfactorystaticbuilder.md) * [Use format alignment `ObjectMappers`](./useformatalignedobjectmappers.md) * [Use modern date/time serialization defaults](./usemoderndatetimeserialization.md) diff --git a/docs/recipes/java/jackson/migratefactorysetterstobuilder.md b/docs/recipes/java/jackson/migratefactorysetterstobuilder.md new file mode 100644 index 0000000000..d7c675d649 --- /dev/null +++ b/docs/recipes/java/jackson/migratefactorysetterstobuilder.md @@ -0,0 +1,169 @@ +--- +title: "Migrate factory setter calls to builder pattern" +sidebar_label: "Migrate factory setter calls to builder pattern" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Migrate factory setter calls to builder pattern + +**org.openrewrite.java.jackson.MigrateFactorySettersToBuilder** + +_In Jackson 3, `JsonFactory` is immutable and `new JsonFactory()` is no longer the right entry point: the concrete factory lives at `tools.jackson.core.json.JsonFactory` and is constructed via `JsonFactory.builder()...build()`. Configuration methods like `enable`, `disable`, `configure`, `setCharacterEscapes`, etc. must be called on the builder instead. This recipe migrates setter calls to the builder pattern when safe, or adds TODO comments when automatic migration is not possible._ + +### Tags + +* [jackson-3](/reference/recipes-by-tag#jackson) + +## Recipe source + +[GitHub: MigrateFactorySettersToBuilder.java](https://github.com/openrewrite/rewrite-jackson/blob/main/src/main/java/org/openrewrite/java/jackson/MigrateFactorySettersToBuilder.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-jackson/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-jackson/) + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) + +## Example + + + + + + +###### Before +```java +import com.fasterxml.jackson.core.JsonFactory; + +class A { + JsonFactory factory = new JsonFactory(); +} +``` + +###### After +```java +import com.fasterxml.jackson.core.JsonFactory; + +class A { + JsonFactory factory = JsonFactory.builder() + .build(); +} +``` + + + + +```diff +@@ -4,1 +4,2 @@ + +class A { +- JsonFactory factory = new JsonFactory(); ++ JsonFactory factory = JsonFactory.builder() ++ .build(); +} +``` + + + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/jackson/upgradejackson_2_3.md b/docs/recipes/java/jackson/upgradejackson_2_3.md index 4eaf4afef0..0be3071f22 100644 --- a/docs/recipes/java/jackson/upgradejackson_2_3.md +++ b/docs/recipes/java/jackson/upgradejackson_2_3.md @@ -48,9 +48,11 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Update `lombok.config` for Jackson 3 compatibility](../../java/jackson/lombokjacksonizedconfig) * [Update configuration of serialization inclusion in `ObjectMapper` for Jackson 3](../../java/jackson/updateserializationinclusionconfiguration) * [Use format alignment `ObjectMappers`](../../java/jackson/useformatalignedobjectmappers) +* [Modernize legacy `jackson-core` feature constants](../../java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures) * [Remove redundant Jackson 3 feature flag configurations](../../java/jackson/upgradejackson_2_3_removeredundantfeatureflags) * [Remove registrations of modules built-in to Jackson 3](../../java/jackson/removebuiltinmoduleregistrations) * [Migrate mapper setter calls to builder pattern](../../java/jackson/migratemappersetterstobuilder) +* [Migrate factory setter calls to builder pattern](../../java/jackson/migratefactorysetterstobuilder) * [Update configuration of serialization inclusion in `ObjectMapper` for Jackson 3](../../java/jackson/updateserializationinclusionconfiguration) * [Replace `disable(MapperFeature.AUTO_DETECT_*)` with `changeDefaultVisibility()` for Jackson 3](../../java/jackson/updateautodetectvisibilityconfiguration) * [Reorder method arguments](../../java/reordermethodarguments) @@ -67,7 +69,6 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * oldParameterNames: `[msg, cause, gen]` * [Add missing Jackson dataformat dependencies](../../java/jackson/addmissingjacksondependencies) * [Upgrade Jackson 2.x dependencies to 3.x](../../java/jackson/upgradejackson_2_3_dependencies) -* [Update Jackson 2.x types to 3.x](../../java/jackson/upgradejackson_2_3_typechanges) * [Rename Jackson 2.x methods to 3.x equivalents](../../java/jackson/upgradejackson_2_3_methodrenames) * [Migrate relocated feature constants to DateTimeFeature and EnumFeature](../../java/jackson/upgradejackson_2_3_relocatedfeatureconstants) * [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) @@ -91,6 +92,8 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Add comment to method invocations](../../java/addcommenttomethodinvocations) * comment: `TODO deserializationConfig() is not to be used by application code in Jackson 3 (see https://github.com/FasterXML/jackson-databind/blob/3.x/src/main/java/tools/jackson/databind/ObjectMapper.java#L427). Consider using builder configuration instead.` * methodPattern: `com.fasterxml.jackson.databind.ObjectMapper deserializationConfig()` +* [Update Jackson 2.x types to 3.x](../../java/jackson/upgradejackson_2_3_typechanges) +* [Use `JsonFactory.builder()` over `new JsonFactoryBuilder()`](../../java/jackson/usejsonfactorystaticbuilder) * [Update Jackson package names from 2.x to 3.x](../../java/jackson/upgradejackson_2_3_packagechanges) * [Simplify catch clauses for Jackson exceptions](../../java/jackson/simplifyjacksonexceptioncatch) @@ -119,9 +122,11 @@ recipeList: - org.openrewrite.java.jackson.LombokJacksonizedConfig - org.openrewrite.java.jackson.UpdateSerializationInclusionConfiguration - org.openrewrite.java.jackson.UseFormatAlignedObjectMappers + - org.openrewrite.java.jackson.UpgradeJackson_2_3_ModernizeJacksonCoreFeatures - org.openrewrite.java.jackson.UpgradeJackson_2_3_RemoveRedundantFeatureFlags - org.openrewrite.java.jackson.RemoveBuiltInModuleRegistrations - org.openrewrite.java.jackson.MigrateMapperSettersToBuilder + - org.openrewrite.java.jackson.MigrateFactorySettersToBuilder - org.openrewrite.java.jackson.UpdateSerializationInclusionConfiguration - org.openrewrite.java.jackson.UpdateAutoDetectVisibilityConfiguration - org.openrewrite.java.ReorderMethodArguments: @@ -152,7 +157,6 @@ recipeList: - gen - org.openrewrite.java.jackson.AddMissingJacksonDependencies - org.openrewrite.java.jackson.UpgradeJackson_2_3_Dependencies - - org.openrewrite.java.jackson.UpgradeJackson_2_3_TypeChanges - org.openrewrite.java.jackson.UpgradeJackson_2_3_MethodRenames - org.openrewrite.java.jackson.UpgradeJackson_2_3_RelocatedFeatureConstants - org.openrewrite.java.ReplaceConstantWithAnotherConstant: @@ -176,6 +180,8 @@ recipeList: - org.openrewrite.java.AddCommentToMethodInvocations: comment: TODO deserializationConfig() is not to be used by application code in Jackson 3 (see https://github.com/FasterXML/jackson-databind/blob/3.x/src/main/java/tools/jackson/databind/ObjectMapper.java#L427). Consider using builder configuration instead. methodPattern: com.fasterxml.jackson.databind.ObjectMapper deserializationConfig() + - org.openrewrite.java.jackson.UpgradeJackson_2_3_TypeChanges + - org.openrewrite.java.jackson.UseJsonFactoryStaticBuilder - org.openrewrite.java.jackson.UpgradeJackson_2_3_PackageChanges - org.openrewrite.java.jackson.SimplifyJacksonExceptionCatch @@ -320,10 +326,11 @@ class Test { ###### After ```java -import tools.jackson.core.TokenStreamFactory; +import tools.jackson.core.json.JsonFactory; class Test { - TokenStreamFactory factory = new TokenStreamFactory(); + JsonFactory factory = JsonFactory.builder() + .build(); } ``` @@ -333,13 +340,14 @@ class Test { ```diff @@ -1,1 +1,1 @@ -import com.fasterxml.jackson.core.JsonFactory; -+import tools.jackson.core.TokenStreamFactory; ++import tools.jackson.core.json.JsonFactory; -@@ -4,1 +4,1 @@ +@@ -4,1 +4,2 @@ class Test { - JsonFactory factory = new JsonFactory(); -+ TokenStreamFactory factory = new TokenStreamFactory(); ++ JsonFactory factory = JsonFactory.builder() ++ .build(); } ``` @@ -930,10 +938,11 @@ class Test { ###### After ```java -import tools.jackson.core.TokenStreamFactory; +import tools.jackson.core.json.JsonFactory; class Test { - TokenStreamFactory factory = new TokenStreamFactory(); + JsonFactory factory = JsonFactory.builder() + .build(); } ``` @@ -943,13 +952,14 @@ class Test { ```diff @@ -1,1 +1,1 @@ -import com.fasterxml.jackson.core.JsonFactory; -+import tools.jackson.core.TokenStreamFactory; ++import tools.jackson.core.json.JsonFactory; -@@ -4,1 +4,1 @@ +@@ -4,1 +4,2 @@ class Test { - JsonFactory factory = new JsonFactory(); -+ TokenStreamFactory factory = new TokenStreamFactory(); ++ JsonFactory factory = JsonFactory.builder() ++ .build(); } ``` diff --git a/docs/recipes/java/jackson/upgradejackson_2_3_methodrenames.md b/docs/recipes/java/jackson/upgradejackson_2_3_methodrenames.md index 9b7a63db44..17639811d9 100644 --- a/docs/recipes/java/jackson/upgradejackson_2_3_methodrenames.md +++ b/docs/recipes/java/jackson/upgradejackson_2_3_methodrenames.md @@ -47,6 +47,9 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Change method name](../../java/changemethodname) * methodPattern: `com.fasterxml.jackson.databind.ObjectMapper getDeserializationConfig()` * newMethodName: `deserializationConfig` +* [Change method name](../../java/changemethodname) + * methodPattern: `com.fasterxml.jackson.databind.JsonMappingException.Reference getFieldName()` + * newMethodName: `getPropertyName` @@ -75,6 +78,9 @@ recipeList: - org.openrewrite.java.ChangeMethodName: methodPattern: com.fasterxml.jackson.databind.ObjectMapper getDeserializationConfig() newMethodName: deserializationConfig + - org.openrewrite.java.ChangeMethodName: + methodPattern: com.fasterxml.jackson.databind.JsonMappingException.Reference getFieldName() + newMethodName: getPropertyName ``` diff --git a/docs/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures.md b/docs/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures.md new file mode 100644 index 0000000000..b8f3be6529 --- /dev/null +++ b/docs/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures.md @@ -0,0 +1,457 @@ +--- +title: "Modernize legacy `jackson-core` feature constants" +sidebar_label: "Modernize legacy `jackson-core` feature constants" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Modernize legacy `jackson-core` feature constants + +**org.openrewrite.java.jackson.UpgradeJackson\_2\_3\_ModernizeJacksonCoreFeatures** + +_Jackson 2.10 moved most flag constants out of `JsonParser.Feature` and `JsonGenerator.Feature` into the new `JsonReadFeature` / `JsonWriteFeature` (for JSON-specific flags) and `StreamReadFeature` / `StreamWriteFeature` (for format-agnostic flags). Jackson 3 keeps only the modern locations. This recipe rewrites every legacy constant to its Jackson 2-modern equivalent so the rest of the Jackson 2 → 3 pipeline (in particular the builder migrations) sees flags the modern API will accept._ + +### Tags + +* [jackson-3](/reference/recipes-by-tag#jackson) + +## Recipe source + +[GitHub: jackson-2-3.yml](https://github.com/openrewrite/rewrite-jackson/blob/main/src/main/resources/META-INF/rewrite/jackson-2-3.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-jackson/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-jackson/) + +:::info +This recipe is composed of more than one recipe. If you want to customize the set of recipes this is composed of, you can find and copy the GitHub source for the recipe from the link above. +::: + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Definition + + + +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_COMMENTS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_JAVA_COMMENTS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_YAML_COMMENTS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_YAML_COMMENTS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_UNQUOTED_FIELD_NAMES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_SINGLE_QUOTES` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_SINGLE_QUOTES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_RS_CONTROL_CHAR` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_RS_CONTROL_CHAR` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_LEADING_ZEROS_FOR_NUMBERS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_MISSING_VALUES` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_MISSING_VALUES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_TRAILING_COMMA` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_TRAILING_COMMA` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.AUTO_CLOSE_SOURCE` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamReadFeature.AUTO_CLOSE_SOURCE` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.STRICT_DUPLICATE_DETECTION` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamReadFeature.STRICT_DUPLICATE_DETECTION` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.IGNORE_UNDEFINED` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamReadFeature.IGNORE_UNDEFINED` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.INCLUDE_SOURCE_IN_LOCATION` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.USE_FAST_DOUBLE_PARSER` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamReadFeature.USE_FAST_DOUBLE_PARSER` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonParser.Feature.USE_FAST_BIG_NUMBER_PARSER` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamReadFeature.USE_FAST_BIG_NUMBER_PARSER` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.QUOTE_FIELD_NAMES` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.QUOTE_FIELD_NAMES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.QUOTE_NON_NUMERIC_NUMBERS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.WRITE_NAN_AS_STRINGS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.ESCAPE_NON_ASCII` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.ESCAPE_NON_ASCII` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_HEX_UPPER_CASE` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.WRITE_HEX_UPPER_CASE` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.ESCAPE_FORWARD_SLASHES` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.ESCAPE_FORWARD_SLASHES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.COMBINE_UNICODE_SURROGATES_IN_UTF8` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.COMBINE_UNICODE_SURROGATES_IN_UTF8` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.AUTO_CLOSE_TARGET` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.AUTO_CLOSE_TARGET` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.AUTO_CLOSE_JSON_CONTENT` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.AUTO_CLOSE_CONTENT` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.FLUSH_PASSED_TO_STREAM` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.FLUSH_PASSED_TO_STREAM` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.WRITE_BIGDECIMAL_AS_PLAIN` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.STRICT_DUPLICATE_DETECTION` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.IGNORE_UNKNOWN` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.IGNORE_UNKNOWN` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonGenerator.Feature.USE_FAST_DOUBLE_WRITER` + * fullyQualifiedConstantName: `com.fasterxml.jackson.core.StreamWriteFeature.USE_FAST_DOUBLE_WRITER` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.jackson.UpgradeJackson_2_3_ModernizeJacksonCoreFeatures +displayName: Modernize legacy `jackson-core` feature constants +description: | + Jackson 2.10 moved most flag constants out of `JsonParser.Feature` and `JsonGenerator.Feature` into the new `JsonReadFeature` / `JsonWriteFeature` (for JSON-specific flags) and `StreamReadFeature` / `StreamWriteFeature` (for format-agnostic flags). Jackson 3 keeps only the modern locations. This recipe rewrites every legacy constant to its Jackson 2-modern equivalent so the rest of the Jackson 2 → 3 pipeline (in particular the builder migrations) sees flags the modern API will accept. +tags: + - jackson-3 +recipeList: + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_COMMENTS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_JAVA_COMMENTS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_YAML_COMMENTS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_YAML_COMMENTS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_UNQUOTED_FIELD_NAMES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_SINGLE_QUOTES + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_SINGLE_QUOTES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_RS_CONTROL_CHAR + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_RS_CONTROL_CHAR + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_LEADING_ZEROS_FOR_NUMBERS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_MISSING_VALUES + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_MISSING_VALUES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_TRAILING_COMMA + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_TRAILING_COMMA + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.AUTO_CLOSE_SOURCE + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamReadFeature.AUTO_CLOSE_SOURCE + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.STRICT_DUPLICATE_DETECTION + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamReadFeature.STRICT_DUPLICATE_DETECTION + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.IGNORE_UNDEFINED + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamReadFeature.IGNORE_UNDEFINED + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.INCLUDE_SOURCE_IN_LOCATION + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.USE_FAST_DOUBLE_PARSER + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamReadFeature.USE_FAST_DOUBLE_PARSER + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonParser.Feature.USE_FAST_BIG_NUMBER_PARSER + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamReadFeature.USE_FAST_BIG_NUMBER_PARSER + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.QUOTE_FIELD_NAMES + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.QUOTE_FIELD_NAMES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.QUOTE_NON_NUMERIC_NUMBERS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.WRITE_NAN_AS_STRINGS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.ESCAPE_NON_ASCII + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.ESCAPE_NON_ASCII + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_HEX_UPPER_CASE + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.WRITE_HEX_UPPER_CASE + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.ESCAPE_FORWARD_SLASHES + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.ESCAPE_FORWARD_SLASHES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.COMBINE_UNICODE_SURROGATES_IN_UTF8 + fullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.COMBINE_UNICODE_SURROGATES_IN_UTF8 + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.AUTO_CLOSE_TARGET + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.AUTO_CLOSE_TARGET + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.AUTO_CLOSE_JSON_CONTENT + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.AUTO_CLOSE_CONTENT + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.FLUSH_PASSED_TO_STREAM + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.FLUSH_PASSED_TO_STREAM + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.WRITE_BIGDECIMAL_AS_PLAIN + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.STRICT_DUPLICATE_DETECTION + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.IGNORE_UNKNOWN + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.IGNORE_UNKNOWN + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonGenerator.Feature.USE_FAST_DOUBLE_WRITER + fullyQualifiedConstantName: com.fasterxml.jackson.core.StreamWriteFeature.USE_FAST_DOUBLE_WRITER + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) + +## Examples +##### Example 1 +`UpgradeJackson_2_3_ModernizeJacksonCoreFeaturesTest#allowCommentsRenamedToAllowJavaComments` + + + + + + +###### Before +```java +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParser; + +class A { + JsonFactory factory = new JsonFactory().enable(JsonParser.Feature.ALLOW_COMMENTS); +} +``` + +###### After +```java +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.json.JsonReadFeature; + +class A { + JsonFactory factory = new JsonFactory().enable(JsonReadFeature.ALLOW_JAVA_COMMENTS); +} +``` + + + + +```diff +@@ -2,1 +2,1 @@ +import com.fasterxml.jackson.core.JsonFactory; +-import com.fasterxml.jackson.core.JsonParser; ++import com.fasterxml.jackson.core.json.JsonReadFeature; + +@@ -5,1 +5,1 @@ + +class A { +- JsonFactory factory = new JsonFactory().enable(JsonParser.Feature.ALLOW_COMMENTS); ++ JsonFactory factory = new JsonFactory().enable(JsonReadFeature.ALLOW_JAVA_COMMENTS); +} +``` + + + +--- + +##### Example 2 +`UpgradeJackson_2_3_ModernizeJacksonCoreFeaturesTest#allowCommentsRenamedToAllowJavaComments` + + + + + + +###### Before +```java +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParser; + +class A { + JsonFactory factory = new JsonFactory().enable(JsonParser.Feature.ALLOW_COMMENTS); +} +``` + +###### After +```java +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.json.JsonReadFeature; + +class A { + JsonFactory factory = new JsonFactory().enable(JsonReadFeature.ALLOW_JAVA_COMMENTS); +} +``` + + + + +```diff +@@ -2,1 +2,1 @@ +import com.fasterxml.jackson.core.JsonFactory; +-import com.fasterxml.jackson.core.JsonParser; ++import com.fasterxml.jackson.core.json.JsonReadFeature; + +@@ -5,1 +5,1 @@ + +class A { +- JsonFactory factory = new JsonFactory().enable(JsonParser.Feature.ALLOW_COMMENTS); ++ JsonFactory factory = new JsonFactory().enable(JsonReadFeature.ALLOW_JAVA_COMMENTS); +} +``` + + + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/jackson/upgradejackson_2_3_relocatedfeatureconstants.md b/docs/recipes/java/jackson/upgradejackson_2_3_relocatedfeatureconstants.md index 6a09feeff7..f3bd60b2e5 100644 --- a/docs/recipes/java/jackson/upgradejackson_2_3_relocatedfeatureconstants.md +++ b/docs/recipes/java/jackson/upgradejackson_2_3_relocatedfeatureconstants.md @@ -79,6 +79,24 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) * existingFullyQualifiedConstantName: `com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE` * fullyQualifiedConstantName: `tools.jackson.databind.cfg.EnumFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_UNQUOTED_FIELD_NAMES` + * fullyQualifiedConstantName: `tools.jackson.core.json.JsonReadFeature.ALLOW_UNQUOTED_PROPERTY_NAMES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.json.JsonWriteFeature.QUOTE_FIELD_NAMES` + * fullyQualifiedConstantName: `tools.jackson.core.json.JsonWriteFeature.QUOTE_PROPERTY_NAMES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonFactory.Feature.INTERN_FIELD_NAMES` + * fullyQualifiedConstantName: `tools.jackson.core.TokenStreamFactory.Feature.INTERN_PROPERTY_NAMES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonFactory.Feature.CANONICALIZE_FIELD_NAMES` + * fullyQualifiedConstantName: `tools.jackson.core.TokenStreamFactory.Feature.CANONICALIZE_PROPERTY_NAMES` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW` + * fullyQualifiedConstantName: `tools.jackson.core.TokenStreamFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW` +* [Replace constant with another constant](../../java/replaceconstantwithanotherconstant) + * existingFullyQualifiedConstantName: `com.fasterxml.jackson.core.JsonFactory.Feature.CHARSET_DETECTION` + * fullyQualifiedConstantName: `tools.jackson.core.TokenStreamFactory.Feature.CHARSET_DETECTION` @@ -139,6 +157,24 @@ recipeList: - org.openrewrite.java.ReplaceConstantWithAnotherConstant: existingFullyQualifiedConstantName: com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE fullyQualifiedConstantName: tools.jackson.databind.cfg.EnumFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonReadFeature.ALLOW_UNQUOTED_FIELD_NAMES + fullyQualifiedConstantName: tools.jackson.core.json.JsonReadFeature.ALLOW_UNQUOTED_PROPERTY_NAMES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.json.JsonWriteFeature.QUOTE_FIELD_NAMES + fullyQualifiedConstantName: tools.jackson.core.json.JsonWriteFeature.QUOTE_PROPERTY_NAMES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonFactory.Feature.INTERN_FIELD_NAMES + fullyQualifiedConstantName: tools.jackson.core.TokenStreamFactory.Feature.INTERN_PROPERTY_NAMES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonFactory.Feature.CANONICALIZE_FIELD_NAMES + fullyQualifiedConstantName: tools.jackson.core.TokenStreamFactory.Feature.CANONICALIZE_PROPERTY_NAMES + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW + fullyQualifiedConstantName: tools.jackson.core.TokenStreamFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW + - org.openrewrite.java.ReplaceConstantWithAnotherConstant: + existingFullyQualifiedConstantName: com.fasterxml.jackson.core.JsonFactory.Feature.CHARSET_DETECTION + fullyQualifiedConstantName: tools.jackson.core.TokenStreamFactory.Feature.CHARSET_DETECTION ``` diff --git a/docs/recipes/java/jackson/upgradejackson_2_3_typechanges.md b/docs/recipes/java/jackson/upgradejackson_2_3_typechanges.md index 2b2d3b0edc..89809d9406 100644 --- a/docs/recipes/java/jackson/upgradejackson_2_3_typechanges.md +++ b/docs/recipes/java/jackson/upgradejackson_2_3_typechanges.md @@ -90,7 +90,10 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * newFullyQualifiedTypeName: `tools.jackson.databind.DatabindException` * [Change type](../../java/changetype) * oldFullyQualifiedTypeName: `com.fasterxml.jackson.core.JsonFactory` - * newFullyQualifiedTypeName: `tools.jackson.core.TokenStreamFactory` + * newFullyQualifiedTypeName: `tools.jackson.core.json.JsonFactory` +* [Change type](../../java/changetype) + * oldFullyQualifiedTypeName: `com.fasterxml.jackson.core.JsonFactoryBuilder` + * newFullyQualifiedTypeName: `tools.jackson.core.json.JsonFactoryBuilder` * [Change type](../../java/changetype) * oldFullyQualifiedTypeName: `com.fasterxml.jackson.core.JsonStreamContext` * newFullyQualifiedTypeName: `tools.jackson.core.TokenStreamContext` @@ -229,7 +232,10 @@ recipeList: newFullyQualifiedTypeName: tools.jackson.databind.DatabindException - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: com.fasterxml.jackson.core.JsonFactory - newFullyQualifiedTypeName: tools.jackson.core.TokenStreamFactory + newFullyQualifiedTypeName: tools.jackson.core.json.JsonFactory + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: com.fasterxml.jackson.core.JsonFactoryBuilder + newFullyQualifiedTypeName: tools.jackson.core.json.JsonFactoryBuilder - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: com.fasterxml.jackson.core.JsonStreamContext newFullyQualifiedTypeName: tools.jackson.core.TokenStreamContext diff --git a/docs/recipes/java/jackson/usejsonfactorystaticbuilder.md b/docs/recipes/java/jackson/usejsonfactorystaticbuilder.md new file mode 100644 index 0000000000..538d746cb9 --- /dev/null +++ b/docs/recipes/java/jackson/usejsonfactorystaticbuilder.md @@ -0,0 +1,128 @@ +--- +title: "Use `JsonFactory.builder()` over `new JsonFactoryBuilder()`" +sidebar_label: "Use `JsonFactory.builder()` over `new JsonFactoryBuilder()`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Use `JsonFactory.builder()` over `new JsonFactoryBuilder()` + +**org.openrewrite.java.jackson.UseJsonFactoryStaticBuilder** + +_After the Jackson 2 → 3 migration, prefer the concrete static `JsonFactory.builder()` entry over `new JsonFactoryBuilder()` so `JsonFactory` chains read the same way as the format-aligned factories (`YAMLFactory.builder()`, `CBORFactory.builder()`, etc.). The reason `MigrateFactorySettersToBuilder` emits `new JsonFactoryBuilder()` in the first place is a Jackson 2 quirk — `JsonFactory.builder()` returned the wildcard `TSFBuilder` there. In Jackson 3 the static returns a concretely-typed `JsonFactoryBuilder`, so the constructor form no longer earns its keep._ + +### Tags + +* [jackson-3](/reference/recipes-by-tag#jackson) + +## Recipe source + +[GitHub: UseJsonFactoryStaticBuilder.java](https://github.com/openrewrite/rewrite-jackson/blob/main/src/main/java/org/openrewrite/java/jackson/UseJsonFactoryStaticBuilder.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-jackson/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-jackson/) + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/migrate/README.md b/docs/recipes/java/migrate/README.md index 4d78754f3e..a0bc151ec4 100644 --- a/docs/recipes/java/migrate/README.md +++ b/docs/recipes/java/migrate/README.md @@ -77,10 +77,10 @@ _Recipes that include further recipes, often including the individual recipes be ## Recipes * [Add `JDeprScan` Maven Plug-in](./addjdeprscanplugin.md) +* [Add Mockito Java Agent to Maven Surefire Plugin](./addmockitojavaagenttomavensurefireplugin.md) * [Add `argLine` to surefire and failsafe plugins](./addsurefirefailsafeargline.md) * [Add `lombok-mapstruct-binding` dependency for Maven when both MapStruct and Lombok are used](./addlombokmapstructbindingmavendependencyonly.md) * [Add maven jar plugin to suppress illegal reflection warnings](./addsuppressionforillegalreflectionwarningsplugin.md) -* [Add surefire `--add-opens` for Mockito/ByteBuddy](./addsurefirefailsafearglineformockito.md) * [Adds missing method implementations](./addmissingmethodimplementation.md) * [Adds `static` modifier to `@Produces` fields that are in session beans](./addstaticvariableonproducersessionbean.md) * [Behavior change to bean discovery in modules with `beans.xml` file with no version specified](./beandiscovery.md) @@ -116,6 +116,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Return String `jks` when `KeyStore.getDefaultType()` is called](./changedefaultkeystore.md) * [Update SDKMan Java version](./updatesdkman.md) * [Upgrade Docker image Java version](./upgradedockerimageversion.md) +* [Upgrade Kotlin `jvmTarget` to match the Java version](./upgradekotlinjvmtargetversion.md) * [Upgrade build to Java 11](./upgradebuildtojava11.md) * [Upgrade build to Java 17](./upgradebuildtojava17.md) * [Upgrade build to Java 21](./upgradebuildtojava21.md) diff --git a/docs/recipes/java/migrate/addmockitojavaagenttomavensurefireplugin.md b/docs/recipes/java/migrate/addmockitojavaagenttomavensurefireplugin.md new file mode 100644 index 0000000000..96bd798e80 --- /dev/null +++ b/docs/recipes/java/migrate/addmockitojavaagenttomavensurefireplugin.md @@ -0,0 +1,124 @@ +--- +title: "Add Mockito Java Agent to Maven Surefire Plugin" +sidebar_label: "Add Mockito Java Agent to Maven Surefire Plugin" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Add Mockito Java Agent to Maven Surefire Plugin + +**org.openrewrite.java.migrate.AddMockitoJavaAgentToMavenSurefirePlugin** + +_Adds required configuration to specifically enable the Mockito/Bytebuddy Java agent in the Maven Surefire plugin for Java 21 compatibility._ + +## Recipe source + +[GitHub: AddMockitoJavaAgentToMavenSurefirePlugin.java](https://github.com/openrewrite/rewrite-migrate-java/blob/main/src/main/java/org/openrewrite/java/migrate/AddMockitoJavaAgentToMavenSurefirePlugin.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-migrate-java/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-migrate-java/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Upgrade plugins to Java 25 compatible versions](/recipes/java/migrate/upgradepluginsforjava25.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/migrate/addsurefirefailsafeargline.md b/docs/recipes/java/migrate/addsurefirefailsafeargline.md index 58f11c8b54..8fbc816ec3 100644 --- a/docs/recipes/java/migrate/addsurefirefailsafeargline.md +++ b/docs/recipes/java/migrate/addsurefirefailsafeargline.md @@ -27,13 +27,6 @@ This recipe is available under the [Moderne Source Available License](https://do | --- | --- | --- | --- | | `String` | argLine | The arguments to add to the surefire and failsafe plugin `argLine` configuration. Individual arguments are space-separated. Arguments already present in the existing argLine are not duplicated. | `--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED` | - -## Used by - -This recipe is used as part of the following composite recipes: - -* [Add surefire `--add-opens` for Mockito/ByteBuddy](/recipes/java/migrate/addsurefirefailsafearglineformockito.md) - ## Example ###### Parameters diff --git a/docs/recipes/java/migrate/javabestpractices.md b/docs/recipes/java/migrate/javabestpractices.md index d24e1c59db..7cca21f682 100644 --- a/docs/recipes/java/migrate/javabestpractices.md +++ b/docs/recipes/java/migrate/javabestpractices.md @@ -42,6 +42,7 @@ This recipe is available under the [Moderne Source Available License](https://do **Recipes** * [Migrate to Java 25](../../java/migrate/upgradetojava25) +* [Migrate `public static void main(String[] args)` to instance `void main()`](../../java/migrate/lang/migratemainmethodtoinstancemain) * [Use text blocks](../../java/migrate/lang/usetextblocks) * convertStringsWithoutNewlines: `true` * avoidLineContinuations: `false` @@ -102,6 +103,7 @@ preconditions: - org.openrewrite.Singleton recipeList: - org.openrewrite.java.migrate.UpgradeToJava25 + - org.openrewrite.java.migrate.lang.MigrateMainMethodToInstanceMain - org.openrewrite.java.migrate.lang.UseTextBlocks: convertStringsWithoutNewlines: true avoidLineContinuations: false diff --git a/docs/recipes/java/migrate/lang/migratemainmethodtoinstancemain.md b/docs/recipes/java/migrate/lang/migratemainmethodtoinstancemain.md index 27ab961d99..3122a4bcaf 100644 --- a/docs/recipes/java/migrate/lang/migratemainmethodtoinstancemain.md +++ b/docs/recipes/java/migrate/lang/migratemainmethodtoinstancemain.md @@ -26,7 +26,7 @@ This recipe is available under the [Moderne Source Available License](https://do This recipe is used as part of the following composite recipes: -* [Migrate to Java 25](/recipes/java/migrate/upgradetojava25.md) +* [Java best practices](/recipes/java/migrate/javabestpractices.md) ## Example diff --git a/docs/recipes/java/migrate/upgradejavaversion.md b/docs/recipes/java/migrate/upgradejavaversion.md index e6eff43524..e1762e94cc 100644 --- a/docs/recipes/java/migrate/upgradejavaversion.md +++ b/docs/recipes/java/migrate/upgradejavaversion.md @@ -44,6 +44,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Update SDKMan Java version](../../java/migrate/updatesdkman) * newVersion: `null` * [Upgrade Docker image Java version](../../java/migrate/upgradedockerimageversion) +* [Upgrade Kotlin `jvmTarget` to match the Java version](../../java/migrate/upgradekotlinjvmtargetversion) @@ -66,6 +67,7 @@ recipeList: - org.openrewrite.java.migrate.UpdateSdkMan: newVersion: null - org.openrewrite.java.migrate.UpgradeDockerImageVersion + - org.openrewrite.java.migrate.UpgradeKotlinJvmTargetVersion ``` diff --git a/docs/recipes/java/migrate/upgradekotlinjvmtargetversion.md b/docs/recipes/java/migrate/upgradekotlinjvmtargetversion.md new file mode 100644 index 0000000000..7d59ac9696 --- /dev/null +++ b/docs/recipes/java/migrate/upgradekotlinjvmtargetversion.md @@ -0,0 +1,144 @@ +--- +title: "Upgrade Kotlin `jvmTarget` to match the Java version" +sidebar_label: "Upgrade Kotlin `jvmTarget` to match the Java version" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Upgrade Kotlin `jvmTarget` to match the Java version + +**org.openrewrite.java.migrate.UpgradeKotlinJvmTargetVersion** + +_Align the Kotlin `jvmTarget` with the project's Java version so the Kotlin compiler emits bytecode at the same level as `javac`. Covers `kotlin-maven-plugin` `` configuration and the Gradle `kotlinOptions { jvmTarget = ... }` / `compilerOptions { jvmTarget = ... }` blocks (Groovy and Kotlin DSL). Will not downgrade if the existing Kotlin target is higher than the requested version._ + +## Recipe source + +[GitHub: UpgradeKotlinJvmTargetVersion.java](https://github.com/openrewrite/rewrite-migrate-java/blob/main/src/main/java/org/openrewrite/java/migrate/UpgradeKotlinJvmTargetVersion.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-migrate-java/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-migrate-java/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + +## Options + +| Type | Name | Description | Example | +| --- | --- | --- | --- | +| `Integer` | version | The Java version to align Kotlin's `jvmTarget` with. | `21` | + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Upgrade Java version](/recipes/java/migrate/upgradejavaversion.md) + + +## Usage + +This recipe has required configuration parameters. Recipes with required configuration parameters cannot be activated directly (unless you are running them via the Moderne CLI). To activate this recipe you must create a new recipe which fills in the required parameters. In your `rewrite.yml` create a new recipe with a unique name. For example: `com.yourorg.UpgradeKotlinJvmTargetVersionExample`. +Here's how you can define and customize such a recipe within your rewrite.yml: +```yaml title="rewrite.yml" +--- +type: specs.openrewrite.org/v1beta/recipe +name: com.yourorg.UpgradeKotlinJvmTargetVersionExample +displayName: Upgrade Kotlin `jvmTarget` to match the Java version example +recipeList: + - org.openrewrite.java.migrate.UpgradeKotlinJvmTargetVersion: + version: 21 +``` + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/migrate/upgradepluginsforjava25.md b/docs/recipes/java/migrate/upgradepluginsforjava25.md index c36c6cb536..d61e04a5ef 100644 --- a/docs/recipes/java/migrate/upgradepluginsforjava25.md +++ b/docs/recipes/java/migrate/upgradepluginsforjava25.md @@ -66,7 +66,7 @@ This recipe is available under the [Moderne Source Available License](https://do * groupId: `org.mockito` * artifactId: `mockito-*` * newVersion: `5.17.x` -* [Add surefire `--add-opens` for Mockito/ByteBuddy](../../java/migrate/addsurefirefailsafearglineformockito) +* [Add Mockito Java Agent to Maven Surefire Plugin](../../java/migrate/addmockitojavaagenttomavensurefireplugin) @@ -110,7 +110,7 @@ recipeList: groupId: org.mockito artifactId: mockito-* newVersion: 5.17.x - - org.openrewrite.java.migrate.AddSurefireFailsafeArgLineForMockito + - org.openrewrite.java.migrate.AddMockitoJavaAgentToMavenSurefirePlugin ``` diff --git a/docs/recipes/java/migrate/upgradetojava25.md b/docs/recipes/java/migrate/upgradetojava25.md index b3d641b2a2..4d12cb186e 100644 --- a/docs/recipes/java/migrate/upgradetojava25.md +++ b/docs/recipes/java/migrate/upgradetojava25.md @@ -46,7 +46,6 @@ This recipe is available under the [Moderne Source Available License](https://do * [Upgrade build to Java 25 for Kotlin 2.3+](../../java/migrate/upgradebuildtojava25forkotlin) * [Upgrade plugins to Java 25 compatible versions](../../java/migrate/upgradepluginsforjava25) * [Migrate `System.out.print` to Java 25 IO utility class](../../java/migrate/io/replacesystemoutwithioprint) -* [Migrate `public static void main(String[] args)` to instance `void main()`](../../java/migrate/lang/migratemainmethodtoinstancemain) * [Use `Process#waitFor(Duration)`](../../java/migrate/lang/migrateprocesswaitforduration) * [Replace unused variables with underscore](../../java/migrate/lang/replaceunusedvariableswithunderscore) * [Replace `Inflater` and `Deflater` `end()` calls with `close()`](../../java/migrate/util/migrateinflaterdeflatertoclose) @@ -80,7 +79,6 @@ recipeList: - org.openrewrite.java.migrate.UpgradeBuildToJava25ForKotlin - org.openrewrite.java.migrate.UpgradePluginsForJava25 - org.openrewrite.java.migrate.io.ReplaceSystemOutWithIOPrint - - org.openrewrite.java.migrate.lang.MigrateMainMethodToInstanceMain - org.openrewrite.java.migrate.lang.MigrateProcessWaitForDuration - org.openrewrite.java.migrate.lang.ReplaceUnusedVariablesWithUnderscore - org.openrewrite.java.migrate.util.MigrateInflaterDeflaterToClose diff --git a/docs/recipes/java/reordermethodarguments.md b/docs/recipes/java/reordermethodarguments.md index 550a9e0887..e2bf14bb40 100644 --- a/docs/recipes/java/reordermethodarguments.md +++ b/docs/recipes/java/reordermethodarguments.md @@ -41,6 +41,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to ApacheHttpClient 5.x Classes Namespace from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_classmapping.md) * [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) * [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) +* [Reorder method arguments](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/reordermethodarguments) * [Reorder the arguments of `RequestBody.create()`](/recipes/okhttp/reorderrequestbodycreatearguments.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/java/migrate/jakarta/removalsservletjakarta10.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/oracle/weblogic/rewrite/jakarta/removalsservletjakarta9.md) diff --git a/docs/recipes/java/replaceconstant.md b/docs/recipes/java/replaceconstant.md index b40c4d286f..1d0c2ea97c 100644 --- a/docs/recipes/java/replaceconstant.md +++ b/docs/recipes/java/replaceconstant.md @@ -29,6 +29,13 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | `String` | constantName | The name of the constant field to replace. | `UTF_8` | | `String` | literalValue | The literal value to replace. | `UTF_8` | + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) + ## Example ###### Parameters diff --git a/docs/recipes/java/replaceconstantwithanotherconstant.md b/docs/recipes/java/replaceconstantwithanotherconstant.md index 199b16e3db..3bc3425801 100644 --- a/docs/recipes/java/replaceconstantwithanotherconstant.md +++ b/docs/recipes/java/replaceconstantwithanotherconstant.md @@ -51,6 +51,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Kafka 3.0](/recipes/java/spring/kafka/upgradespringkafka_3_0.md) * [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) * [Migrates to Apache POI 3.17](/recipes/apache/poi/upgradeapachepoi_3_17.md) +* [Modernize legacy `jackson-core` feature constants](/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures.md) * [Prefer `java.nio.charset.StandardCharsets`](/recipes/apache/commons/io/usestandardcharsets.md) * [Rename MemberCategory field constants for Spring Framework 7.0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/framework7/renamemembercategoryconstants) * [Rename `RequestContext.jstPresent` to `JSTL_PRESENT`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/framework7/renamerequestcontextjstlpresent) diff --git a/docs/recipes/java/spring/boot4/migrateautoconfigurepackages.md b/docs/recipes/java/spring/boot4/migrateautoconfigurepackages.md index 2e6a7187d4..f105fef001 100644 --- a/docs/recipes/java/spring/boot4/migrateautoconfigurepackages.md +++ b/docs/recipes/java/spring/boot4/migrateautoconfigurepackages.md @@ -258,6 +258,12 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change type](../../../java/changetype) * oldFullyQualifiedTypeName: `org.springframework.boot.actuate.health.AdditionalHealthEndpointPath` * newFullyQualifiedTypeName: `org.springframework.boot.health.actuate.endpoint.AdditionalHealthEndpointPath` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.boot.actuate.health.CompositeHealth` + * newFullyQualifiedTypeName: `org.springframework.boot.health.actuate.endpoint.CompositeHealthDescriptor` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.boot.actuate.health.HealthComponent` + * newFullyQualifiedTypeName: `org.springframework.boot.health.actuate.endpoint.HealthDescriptor` * [Change type](../../../java/changetype) * oldFullyQualifiedTypeName: `org.springframework.boot.actuate.health.HealthEndpoint` * newFullyQualifiedTypeName: `org.springframework.boot.health.actuate.endpoint.HealthEndpoint` @@ -552,6 +558,12 @@ recipeList: - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: org.springframework.boot.actuate.health.AdditionalHealthEndpointPath newFullyQualifiedTypeName: org.springframework.boot.health.actuate.endpoint.AdditionalHealthEndpointPath + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.boot.actuate.health.CompositeHealth + newFullyQualifiedTypeName: org.springframework.boot.health.actuate.endpoint.CompositeHealthDescriptor + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.boot.actuate.health.HealthComponent + newFullyQualifiedTypeName: org.springframework.boot.health.actuate.endpoint.HealthDescriptor - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: org.springframework.boot.actuate.health.HealthEndpoint newFullyQualifiedTypeName: org.springframework.boot.health.actuate.endpoint.HealthEndpoint diff --git a/docs/recipes/java/testing/jmockit/jmockittomockito.md b/docs/recipes/java/testing/jmockit/jmockittomockito.md index d2efd42ec2..dd232137e5 100644 --- a/docs/recipes/java/testing/jmockit/jmockittomockito.md +++ b/docs/recipes/java/testing/jmockit/jmockittomockito.md @@ -59,12 +59,19 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change type](../../../java/changetype) * oldFullyQualifiedTypeName: `mockit.integration.junit4.JMockit` * newFullyQualifiedTypeName: `org.mockito.junit.MockitoJUnitRunner` +* [Adds Mockito extensions to Mockito tests](../../../java/testing/mockito/addmockitoextensionifannotationsused) * [Add Gradle or Maven dependency](../../../java/dependencies/adddependency) * groupId: `org.mockito` * artifactId: `mockito-core` * version: `5.x` * onlyIfUsing: `org.mockito.*` * acceptTransitive: `true` +* [Add Gradle or Maven dependency](../../../java/dependencies/adddependency) + * groupId: `org.mockito` + * artifactId: `mockito-junit-jupiter` + * version: `5.x` + * onlyIfUsing: `org.mockito.junit.jupiter.MockitoExtension` + * acceptTransitive: `true` * [Remove a Gradle or Maven dependency](../../../java/dependencies/removedependency) * groupId: `org.jmockit` * artifactId: `jmockit` @@ -108,12 +115,19 @@ recipeList: - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: mockit.integration.junit4.JMockit newFullyQualifiedTypeName: org.mockito.junit.MockitoJUnitRunner + - org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed - org.openrewrite.java.dependencies.AddDependency: groupId: org.mockito artifactId: mockito-core version: 5.x onlyIfUsing: org.mockito.* acceptTransitive: true + - org.openrewrite.java.dependencies.AddDependency: + groupId: org.mockito + artifactId: mockito-junit-jupiter + version: 5.x + onlyIfUsing: org.mockito.junit.jupiter.MockitoExtension + acceptTransitive: true - org.openrewrite.java.dependencies.RemoveDependency: groupId: org.jmockit artifactId: jmockit diff --git a/docs/recipes/java/testing/junit6/junit5to6migration.md b/docs/recipes/java/testing/junit6/junit5to6migration.md index 43c5d43f18..28bf7b2ad4 100644 --- a/docs/recipes/java/testing/junit6/junit5to6migration.md +++ b/docs/recipes/java/testing/junit6/junit5to6migration.md @@ -68,6 +68,13 @@ This recipe is available under the [Moderne Source Available License](https://do * groupId: `org.junit.jupiter` * artifactId: `junit-jupiter*` * newVersion: `6.x` +* [Add Gradle dependency](../../../gradle/adddependency) + * groupId: `org.junit.platform` + * artifactId: `junit-platform-launcher` + * version: `6.x` + * configuration: `testRuntimeOnly` + * onlyIfUsing: `org.junit.jupiter.api.*` + * acceptTransitive: `true` * [Upgrade Maven plugin version](../../../maven/upgradepluginversion) * groupId: `org.apache.maven.plugins` * artifactId: `maven-failsafe-plugin` @@ -147,6 +154,13 @@ recipeList: groupId: org.junit.jupiter artifactId: junit-jupiter* newVersion: 6.x + - org.openrewrite.gradle.AddDependency: + groupId: org.junit.platform + artifactId: junit-platform-launcher + version: 6.x + configuration: testRuntimeOnly + onlyIfUsing: org.junit.jupiter.api.* + acceptTransitive: true - org.openrewrite.maven.UpgradePluginVersion: groupId: org.apache.maven.plugins artifactId: maven-failsafe-plugin diff --git a/docs/recipes/java/testing/mockito/README.md b/docs/recipes/java/testing/mockito/README.md index 4486d9917d..4d085b4810 100644 --- a/docs/recipes/java/testing/mockito/README.md +++ b/docs/recipes/java/testing/mockito/README.md @@ -13,6 +13,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Mockito 4.x upgrade](./mockito1to4migration.md) * [Mockito 5.x upgrade](./mockito1to5migration.md) * [Mockito best practices](./mockitobestpractices.md) +* [Replace PowerMock `Whitebox` with Java reflection](./powermockwhiteboxtojavareflection.md) * [Replace PowerMock with raw Mockito](./replacepowermockito.md) ## Recipes @@ -40,7 +41,9 @@ _Recipes that include further recipes, often including the individual recipes be * [Replace `MockitoTestExecutionListener` (JUnit Jupiter projects)](./replacemockitotestexecutionlistenerforjupiter.md) * [Replace `MockitoTestExecutionListener` (TestNG projects)](./replacemockitotestexecutionlistenerfortestng.md) * [Replace `MockitoTestExecutionListener` with the equivalent Mockito test initialization](./replacemockitotestexecutionlistener.md) -* [Replace PowerMock `Whitebox` with Java reflection](./powermockwhiteboxtojavareflection.md) +* [Replace PowerMock `Whitebox.getInternalState()` with Java reflection](./powermockwhiteboxgetinternalstatetojavareflection.md) +* [Replace PowerMock `Whitebox.invokeMethod()` with Java reflection](./powermockwhiteboxinvokemethodtojavareflection.md) +* [Replace PowerMock `Whitebox.setInternalState()` with Java reflection](./powermockwhiteboxsetinternalstatetojavareflection.md) * [Replace PowerMock dependencies with Mockito equivalents](./replacepowermockdependencies.md) * [Replace PowerMock runner with JUnit `@RunWith`](./powermockrunnerdelegatetorunwith.md) * [Replace `PowerMock.mockStatic()` with `Mockito.mockStatic()`](./powermockitomockstatictomockito.md) diff --git a/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md b/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md index 0a13c93cde..1750c14453 100644 --- a/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md +++ b/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md @@ -26,7 +26,7 @@ This recipe is available under the [Moderne Source Available License](https://do This recipe is used as part of the following composite recipes: -* [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) +* [Migrate from JMockit to Mockito](/recipes/java/testing/jmockit/jmockittomockito.md) ## Example diff --git a/docs/recipes/java/testing/mockito/addmockitojupiterdependency.md b/docs/recipes/java/testing/mockito/addmockitojupiterdependency.md index 71be6d0803..8ac3b96288 100644 --- a/docs/recipes/java/testing/mockito/addmockitojupiterdependency.md +++ b/docs/recipes/java/testing/mockito/addmockitojupiterdependency.md @@ -22,13 +22,6 @@ _Adds `org.mockito:mockito-junit-jupiter` dependency if `@ExtendWith(MockitoExte This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). -## Used by - -This recipe is used as part of the following composite recipes: - -* [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) - - ## Usage @@ -81,6 +82,7 @@ recipeList: artifactId: byte-buddy* newVersion: 1.12.19 - org.openrewrite.java.testing.mockito.ReplaceInitMockToOpenMock + - org.openrewrite.java.testing.mockito.CloseUnclosedStaticMocks ``` diff --git a/docs/recipes/java/testing/mockito/powermockrunnerdelegatetorunwith.md b/docs/recipes/java/testing/mockito/powermockrunnerdelegatetorunwith.md index 5036b1f025..454fc2a0f3 100644 --- a/docs/recipes/java/testing/mockito/powermockrunnerdelegatetorunwith.md +++ b/docs/recipes/java/testing/mockito/powermockrunnerdelegatetorunwith.md @@ -11,7 +11,7 @@ import RunRecipe from '@site/src/components/RunRecipe'; **org.openrewrite.java.testing.mockito.PowerMockRunnerDelegateToRunWith** -_Replaces `@RunWith(PowerMockRunner.class)`. If `@PowerMockRunnerDelegate(X.class)` is present, promotes the delegate runner to `@RunWith(X.class)`. Otherwise, removes the `@RunWith(PowerMockRunner.class)` annotation entirely._ +_Replaces `@RunWith(PowerMockRunner.class)`. If `@PowerMockRunnerDelegate(X.class)` is present, promotes the delegate runner to `@RunWith(X.class)`. Otherwise, replaces it with `@RunWith(MockitoJUnitRunner.class)` when the class uses Mockito annotations like `@Mock`, or removes the `@RunWith(PowerMockRunner.class)` annotation entirely._ ## Recipe source diff --git a/docs/recipes/java/testing/mockito/powermockwhiteboxgetinternalstatetojavareflection.md b/docs/recipes/java/testing/mockito/powermockwhiteboxgetinternalstatetojavareflection.md new file mode 100644 index 0000000000..68963b6318 --- /dev/null +++ b/docs/recipes/java/testing/mockito/powermockwhiteboxgetinternalstatetojavareflection.md @@ -0,0 +1,124 @@ +--- +title: "Replace PowerMock `Whitebox.getInternalState()` with Java reflection" +sidebar_label: "Replace PowerMock `Whitebox.getInternalState()` with Java reflection" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Replace PowerMock `Whitebox.getInternalState()` with Java reflection + +**org.openrewrite.java.testing.mockito.PowerMockWhiteboxGetInternalStateToJavaReflection** + +_Replace `Whitebox.getInternalState(Object, String)` with `java.lang.reflect.Field` access, casting to the declared result type where needed. The field lookup uses `getDeclaredField` on the target object's class, which differs from PowerMock's class-hierarchy traversal for fields inherited from a superclass._ + +## Recipe source + +[GitHub: PowerMockWhiteboxGetInternalStateToJavaReflection.java](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/mockito/PowerMockWhiteboxGetInternalStateToJavaReflection.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-testing-frameworks/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-testing-frameworks/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Replace PowerMock `Whitebox` with Java reflection](/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/testing/mockito/powermockwhiteboxinvokemethodtojavareflection.md b/docs/recipes/java/testing/mockito/powermockwhiteboxinvokemethodtojavareflection.md new file mode 100644 index 0000000000..4618a1c2dc --- /dev/null +++ b/docs/recipes/java/testing/mockito/powermockwhiteboxinvokemethodtojavareflection.md @@ -0,0 +1,124 @@ +--- +title: "Replace PowerMock `Whitebox.invokeMethod()` with Java reflection" +sidebar_label: "Replace PowerMock `Whitebox.invokeMethod()` with Java reflection" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Replace PowerMock `Whitebox.invokeMethod()` with Java reflection + +**org.openrewrite.java.testing.mockito.PowerMockWhiteboxInvokeMethodToJavaReflection** + +_Replace `Whitebox.invokeMethod(Object, String, ..)` with `java.lang.reflect.Method` lookup and `invoke()`. Parameter types are taken from the unambiguously resolved target method, falling back to each argument's compile-time class._ + +## Recipe source + +[GitHub: PowerMockWhiteboxInvokeMethodToJavaReflection.java](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/mockito/PowerMockWhiteboxInvokeMethodToJavaReflection.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-testing-frameworks/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-testing-frameworks/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Replace PowerMock `Whitebox` with Java reflection](/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/testing/mockito/powermockwhiteboxsetinternalstatetojavareflection.md b/docs/recipes/java/testing/mockito/powermockwhiteboxsetinternalstatetojavareflection.md new file mode 100644 index 0000000000..8f2feef076 --- /dev/null +++ b/docs/recipes/java/testing/mockito/powermockwhiteboxsetinternalstatetojavareflection.md @@ -0,0 +1,124 @@ +--- +title: "Replace PowerMock `Whitebox.setInternalState()` with Java reflection" +sidebar_label: "Replace PowerMock `Whitebox.setInternalState()` with Java reflection" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Replace PowerMock `Whitebox.setInternalState()` with Java reflection + +**org.openrewrite.java.testing.mockito.PowerMockWhiteboxSetInternalStateToJavaReflection** + +_Replace `Whitebox.setInternalState(Object, String, Object)` and `Whitebox.setInternalState(Object, String, Object, Class)` with `java.lang.reflect.Field` access. The 3-arg overload looks up the field on the target's class; the 4-arg where-overload uses the supplied Class to resolve fields declared on a superclass._ + +## Recipe source + +[GitHub: PowerMockWhiteboxSetInternalStateToJavaReflection.java](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/mockito/PowerMockWhiteboxSetInternalStateToJavaReflection.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-testing-frameworks/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-testing-frameworks/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Replace PowerMock `Whitebox` with Java reflection](/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md b/docs/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md index 7db6f45668..58c7915a9c 100644 --- a/docs/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md +++ b/docs/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md @@ -13,22 +13,133 @@ import RunRecipe from '@site/src/components/RunRecipe'; _Replace `org.powermock.reflect.Whitebox` calls (`setInternalState`, `getInternalState`, `invokeMethod`) with plain Java reflection using `java.lang.reflect.Field` and `java.lang.reflect.Method`._ +### Tags + +* [testing](/reference/recipes-by-tag#testing) +* [mockito](/reference/recipes-by-tag#mockito) + ## Recipe source -[GitHub: PowerMockWhiteboxToJavaReflection.java](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/mockito/PowerMockWhiteboxToJavaReflection.java), +[GitHub: powermockito.yml](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/resources/META-INF/rewrite/powermockito.yml), [Issue Tracker](https://github.com/openrewrite/rewrite-testing-frameworks/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-testing-frameworks/) +:::info +This recipe is composed of more than one recipe. If you want to customize the set of recipes this is composed of, you can find and copy the GitHub source for the recipe from the link above. +::: + This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). +## Definition + + + +* [Replace PowerMock `Whitebox.setInternalState()` with Java reflection](../../../java/testing/mockito/powermockwhiteboxsetinternalstatetojavareflection) +* [Replace PowerMock `Whitebox.getInternalState()` with Java reflection](../../../java/testing/mockito/powermockwhiteboxgetinternalstatetojavareflection) +* [Replace PowerMock `Whitebox.invokeMethod()` with Java reflection](../../../java/testing/mockito/powermockwhiteboxinvokemethodtojavareflection) + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.testing.mockito.PowerMockWhiteboxToJavaReflection +displayName: Replace PowerMock `Whitebox` with Java reflection +description: | + Replace `org.powermock.reflect.Whitebox` calls (`setInternalState`, `getInternalState`, `invokeMethod`) with plain Java reflection using `java.lang.reflect.Field` and `java.lang.reflect.Method`. +tags: + - testing + - mockito +recipeList: + - org.openrewrite.java.testing.mockito.PowerMockWhiteboxSetInternalStateToJavaReflection + - org.openrewrite.java.testing.mockito.PowerMockWhiteboxGetInternalStateToJavaReflection + - org.openrewrite.java.testing.mockito.PowerMockWhiteboxInvokeMethodToJavaReflection + +``` + + + ## Used by This recipe is used as part of the following composite recipes: * [Replace PowerMock with raw Mockito](/recipes/java/testing/mockito/replacepowermockito.md) -## Example +## Examples +##### Example 1 +`PowerMockWhiteboxToJavaReflectionTest#setInternalStateReplacedWithReflection` + + +###### Unchanged +```java +class MyService { + private String name; +} +``` + + + + + +###### Before +```java +import org.powermock.reflect.Whitebox; + +class MyServiceTest { + void testSetField() { + MyService service = new MyService(); + Whitebox.setInternalState(service, "name", "expectedValue"); + } +} +``` + +###### After +```java +import java.lang.reflect.Field; + +class MyServiceTest { + void testSetField() throws Exception { + MyService service = new MyService(); + Field nameField = service.getClass().getDeclaredField("name"); + nameField.setAccessible(true); + nameField.set(service, "expectedValue"); + } +} +``` + + + + +```diff +@@ -1,1 +1,1 @@ +-import org.powermock.reflect.Whitebox; ++import java.lang.reflect.Field; + +@@ -4,1 +4,1 @@ + +class MyServiceTest { +- void testSetField() { ++ void testSetField() throws Exception { + MyService service = new MyService(); +@@ -6,1 +6,3 @@ + void testSetField() { + MyService service = new MyService(); +- Whitebox.setInternalState(service, "name", "expectedValue"); ++ Field nameField = service.getClass().getDeclaredField("name"); ++ nameField.setAccessible(true); ++ nameField.set(service, "expectedValue"); + } +``` + + + +--- + +##### Example 2 +`PowerMockWhiteboxToJavaReflectionTest#setInternalStateReplacedWithReflection` ###### Unchanged diff --git a/docs/recipes/java/testing/testcontainers/README.md b/docs/recipes/java/testing/testcontainers/README.md index 04cc904df2..3794f3e82e 100644 --- a/docs/recipes/java/testing/testcontainers/README.md +++ b/docs/recipes/java/testing/testcontainers/README.md @@ -12,6 +12,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Explicit container images and versions](./explicitcontainerimages.md) * [Migrate from `oracle-xe` to `oracle-free`](./migratetooraclefree.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](./testcontainers2localstack.md) * [Migrate to Apache Kafka Native container](./migratetokafkanative.md) * [Migrate to testcontainers-java 2.x](./testcontainers2migration.md) * [Rename Testcontainers dependencies](./testcontainers2dependencies.md) diff --git a/docs/recipes/java/testing/testcontainers/testcontainers2localstack.md b/docs/recipes/java/testing/testcontainers/testcontainers2localstack.md new file mode 100644 index 0000000000..cebe08fdae --- /dev/null +++ b/docs/recipes/java/testing/testcontainers/testcontainers2localstack.md @@ -0,0 +1,346 @@ +--- +title: "Migrate removed `LocalStackContainer` members to Testcontainers 2.x" +sidebar_label: "Migrate removed `LocalStackContainer` members to Testcontainers 2.x" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# Migrate removed `LocalStackContainer` members to Testcontainers 2.x + +**org.openrewrite.java.testing.testcontainers.Testcontainers2LocalStack** + +_Testcontainers 2.x removed the nested `LocalStackContainer.Service` enum and the `getEndpointOverride(...)` method. Replace `LocalStackContainer.Service` constants with the equivalent service name strings and `getEndpointOverride(service)` with `getEndpoint()`, so code continues to compile against Testcontainers 2.x. This runs while the type is still `org.testcontainers.containers.localstack.LocalStackContainer`, before it is renamed._ + +## Recipe source + +[GitHub: testcontainers.yml](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/resources/META-INF/rewrite/testcontainers.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-testing-frameworks/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-testing-frameworks/) + +:::info +This recipe is composed of more than one recipe. If you want to customize the set of recipes this is composed of, you can find and copy the GitHub source for the recipe from the link above. +::: + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Definition + + + +**Preconditions** + +* [Singleton](../../../core/singleton) + +**Recipes** + +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `API_GATEWAY` + * literalValue: `"apigateway"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `EC2` + * literalValue: `"ec2"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `KINESIS` + * literalValue: `"kinesis"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `DYNAMODB` + * literalValue: `"dynamodb"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `DYNAMODB_STREAMS` + * literalValue: `"dynamodbstreams"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `S3` + * literalValue: `"s3"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `FIREHOSE` + * literalValue: `"firehose"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `LAMBDA` + * literalValue: `"lambda"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `SNS` + * literalValue: `"sns"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `SQS` + * literalValue: `"sqs"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `REDSHIFT` + * literalValue: `"redshift"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `SES` + * literalValue: `"ses"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `ROUTE53` + * literalValue: `"route53"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `CLOUDFORMATION` + * literalValue: `"cloudformation"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `CLOUDWATCH` + * literalValue: `"cloudwatch"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `SSM` + * literalValue: `"ssm"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `SECRETSMANAGER` + * literalValue: `"secretsmanager"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `STEPFUNCTIONS` + * literalValue: `"stepfunctions"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `CLOUDWATCHLOGS` + * literalValue: `"logs"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `STS` + * literalValue: `"sts"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `IAM` + * literalValue: `"iam"` +* [Replace constant with literal value](../../../java/replaceconstant) + * owningType: `org.testcontainers.containers.localstack.LocalStackContainer$Service` + * constantName: `KMS` + * literalValue: `"kms"` +* [Change method name](../../../java/changemethodname) + * methodPattern: `org.testcontainers.containers.localstack.LocalStackContainer getEndpointOverride(..)` + * newMethodName: `getEndpoint` +* [Delete method argument](../../../java/deletemethodargument) + * methodPattern: `org.testcontainers.containers.localstack.LocalStackContainer getEndpoint(..)` + * argumentIndex: `0` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.testing.testcontainers.Testcontainers2LocalStack +displayName: Migrate removed `LocalStackContainer` members to Testcontainers 2.x +description: | + Testcontainers 2.x removed the nested `LocalStackContainer.Service` enum and the `getEndpointOverride(...)` method. Replace `LocalStackContainer.Service` constants with the equivalent service name strings and `getEndpointOverride(service)` with `getEndpoint()`, so code continues to compile against Testcontainers 2.x. This runs while the type is still `org.testcontainers.containers.localstack.LocalStackContainer`, before it is renamed. +preconditions: + - org.openrewrite.Singleton +recipeList: + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: API_GATEWAY + literalValue: "apigateway" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: EC2 + literalValue: "ec2" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: KINESIS + literalValue: "kinesis" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: DYNAMODB + literalValue: "dynamodb" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: DYNAMODB_STREAMS + literalValue: "dynamodbstreams" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: S3 + literalValue: "s3" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: FIREHOSE + literalValue: "firehose" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: LAMBDA + literalValue: "lambda" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: SNS + literalValue: "sns" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: SQS + literalValue: "sqs" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: REDSHIFT + literalValue: "redshift" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: SES + literalValue: "ses" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: ROUTE53 + literalValue: "route53" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: CLOUDFORMATION + literalValue: "cloudformation" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: CLOUDWATCH + literalValue: "cloudwatch" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: SSM + literalValue: "ssm" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: SECRETSMANAGER + literalValue: "secretsmanager" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: STEPFUNCTIONS + literalValue: "stepfunctions" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: CLOUDWATCHLOGS + literalValue: "logs" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: STS + literalValue: "sts" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: IAM + literalValue: "iam" + - org.openrewrite.java.ReplaceConstant: + owningType: org.testcontainers.containers.localstack.LocalStackContainer$Service + constantName: KMS + literalValue: "kms" + - org.openrewrite.java.ChangeMethodName: + methodPattern: org.testcontainers.containers.localstack.LocalStackContainer getEndpointOverride(..) + newMethodName: getEndpoint + - org.openrewrite.java.DeleteMethodArgument: + methodPattern: org.testcontainers.containers.localstack.LocalStackContainer getEndpoint(..) + argumentIndex: 0 + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to testcontainers-java 2.x](/recipes/java/testing/testcontainers/testcontainers2migration.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/java/testing/testcontainers/testcontainers2migration.md b/docs/recipes/java/testing/testcontainers/testcontainers2migration.md index 27d8f9645e..eb1972ae24 100644 --- a/docs/recipes/java/testing/testcontainers/testcontainers2migration.md +++ b/docs/recipes/java/testing/testcontainers/testcontainers2migration.md @@ -43,6 +43,7 @@ This recipe is available under the [Moderne Source Available License](https://do * oldFullyQualifiedTypeName: `org.testcontainers.containers.DockerComposeContainer` * newFullyQualifiedTypeName: `org.testcontainers.containers.ComposeContainer` * [Rename Testcontainers dependencies](../../../java/testing/testcontainers/testcontainers2dependencies) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](../../../java/testing/testcontainers/testcontainers2localstack) * [Testcontainers 2 container classes](../../../java/testing/testcontainers/testcontainers2containerclasses) @@ -66,6 +67,7 @@ recipeList: oldFullyQualifiedTypeName: org.testcontainers.containers.DockerComposeContainer newFullyQualifiedTypeName: org.testcontainers.containers.ComposeContainer - org.openrewrite.java.testing.testcontainers.Testcontainers2Dependencies + - org.openrewrite.java.testing.testcontainers.Testcontainers2LocalStack - org.openrewrite.java.testing.testcontainers.Testcontainers2ContainerClasses ``` diff --git a/docs/recipes/javascript/adddependency.md b/docs/recipes/javascript/adddependency.md index 79ac15feff..1ff6b8d2fd 100644 --- a/docs/recipes/javascript/adddependency.md +++ b/docs/recipes/javascript/adddependency.md @@ -30,6 +30,14 @@ This recipe is available under the [Moderne Source Available License](https://do | `String` | scope | *Optional*. The dependency scope: `dependencies`, `devDependencies`, `peerDependencies`, or `optionalDependencies`. Defaults to `dependencies`. Valid options: `dependencies`, `devDependencies`, `peerDependencies`, `optionalDependencies` | `dependencies` | +## Used by + +This recipe is used as part of the following composite recipes: + +* [Replace `node-sass` with `sass`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/migration/replace-node-sass-with-sass) +* [Upgrade to PrimeNG 18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/upgradeto18) + + ## Usage This recipe has required configuration parameters. Recipes with required configuration parameters cannot be activated directly (unless you are running them via the Moderne CLI). To activate this recipe you must create a new recipe which fills in the required parameters. In your `rewrite.yml` create a new recipe with a unique name. For example: `com.yourorg.AddDependencyExample`. diff --git a/docs/recipes/javascript/change-import.md b/docs/recipes/javascript/change-import.md index b73b329098..7b902ed1b4 100644 --- a/docs/recipes/javascript/change-import.md +++ b/docs/recipes/javascript/change-import.md @@ -44,6 +44,9 @@ This recipe is used as part of the following composite recipes: * [Rename `Message` interface to `ToastMessageOptions`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/renamemessageinterface) * [Rename `OverlayPanel` to `Popover`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/renameoverlaypaneltopopover) * [Rename `Sidebar` to `Drawer`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/renamesidebartodrawer) +* [Upgrade to Angular 16](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular16) +* [Upgrade to Angular 18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular18) +* [Upgrade to Angular 19](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular19) ## Usage diff --git a/docs/recipes/javascript/changemethodname.md b/docs/recipes/javascript/changemethodname.md index 66ebdb7b40..ad4138137d 100644 --- a/docs/recipes/javascript/changemethodname.md +++ b/docs/recipes/javascript/changemethodname.md @@ -53,6 +53,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change dataformat fury to fury in xml/java dsl.](/recipes/apache/camel/upgrade/camel413/furydsl.md) +* [Change method name](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changemethodname) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedchoicembeanmethodname.md) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedfailoverloadbalancermbeanmethodname.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) @@ -88,6 +89,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from Micronaut 2.x to 3.x](/recipes/java/micronaut/micronaut2to3migration.md) * [Migrate from springdoc-openapi-common to springdoc-openapi-starter-common](/recipes/java/springdoc/migratespringdoccommon.md) * [Migrate packages to modular starters](/recipes/java/spring/boot4/migrateautoconfigurepackages.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x deprecated methods from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_deprecatedmethods.md) * [Migrate to Hibernate 6.0.x (Moderne Edition)](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate60-moderne-edition) * [Migrate to Hibernate 7.0.x (Community Edition)](/recipes/hibernate/migratetohibernate70-community-edition.md) @@ -149,6 +151,7 @@ This recipe is used as part of the following composite recipes: * [Replace deprecated String case conversions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedstringcaseconversions) * [Replace deprecated `appendln` with `appendLine`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedappendln) * [Replace deprecated setters in `RestTemplateBuilder`](/recipes/java/spring/boot3/replaceresttemplatebuildermethods.md) +* [Spring Boot 4.0 Module Starter Relocations](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot4/modulestarterrelocations) * [The header name for the List metadata has changed](/recipes/apache/camel/upgrade/camel43/kafkametadata.md) * [Upgrade to JUnit 5.14](/recipes/java/testing/junit5/upgradetojunit514.md) * [Upgrade to SpringDoc 2.1](/recipes/java/springdoc/upgradespringdoc_2.md) diff --git a/docs/recipes/javascript/changepackage.md b/docs/recipes/javascript/changepackage.md index ff5f997676..8fd10ae46e 100644 --- a/docs/recipes/javascript/changepackage.md +++ b/docs/recipes/javascript/changepackage.md @@ -44,6 +44,7 @@ This recipe is used as part of the following composite recipes: * [Apply Axon Framework 5 serialization → conversion rename](/recipes/axonframework/migration/axon4toaxon5conversion.md) * [ArchUnit 0.x upgrade](/recipes/java/testing/archunit/archunit0to1migration.md) * [Change Tapestry 4 packages to Tapestry 5](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/tapestry/changetapestrypackages) +* [Change package](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changepackage) * [DataNucleus 4.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_4_0.md) * [DataNucleus 5.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_0.md) * [DataNucleus 5.2 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_2.md) diff --git a/docs/recipes/javascript/changetype.md b/docs/recipes/javascript/changetype.md index 0d0af43f40..046bc510a7 100644 --- a/docs/recipes/javascript/changetype.md +++ b/docs/recipes/javascript/changetype.md @@ -52,6 +52,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) +* [Change type](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changetype) * [Changed types of camel AI nested headers classes](/recipes/apache/camel/upgrade/camel415/ainestedheadersclasses.md) * [DataNucleus 4.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_4_0.md) * [DataNucleus 5.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_5_0.md) diff --git a/docs/recipes/javascript/deletemethodargument.md b/docs/recipes/javascript/deletemethodargument.md index ca02d0105e..c7e91a0df5 100644 --- a/docs/recipes/javascript/deletemethodargument.md +++ b/docs/recipes/javascript/deletemethodargument.md @@ -37,8 +37,10 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac This recipe is used as part of the following composite recipes: +* [Delete method argument](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/deletemethodargument) * [Migrate Apache HttpCore Nio Input Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_nioinputbuffers.md) * [Migrate Apache HttpCore Nio Output Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_niooutputbuffers.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5.md) * [Migrate to Hibernate 7.2.x](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate72) * [Migrate to Kafka 4.0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kafka/migratetokafka40) diff --git a/docs/recipes/javascript/removedependency.md b/docs/recipes/javascript/removedependency.md index c1a6d6704d..e07d174fbb 100644 --- a/docs/recipes/javascript/removedependency.md +++ b/docs/recipes/javascript/removedependency.md @@ -29,6 +29,14 @@ This recipe is available under the [Moderne Source Available License](https://do | `String` | scope | *Optional*. The dependency scope to remove from: `dependencies`, `devDependencies`, `peerDependencies`, `optionalDependencies`, or `bundledDependencies`. If not specified, removes from all scopes. Valid options: `dependencies`, `devDependencies`, `peerDependencies`, `optionalDependencies`, `bundledDependencies` | `dependencies` | +## Used by + +This recipe is used as part of the following composite recipes: + +* [Replace `node-sass` with `sass`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/migration/replace-node-sass-with-sass) +* [Upgrade to Angular 8](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular8) + + ## Usage This recipe has required configuration parameters. Recipes with required configuration parameters cannot be activated directly (unless you are running them via the Moderne CLI). To activate this recipe you must create a new recipe which fills in the required parameters. In your `rewrite.yml` create a new recipe with a unique name. For example: `com.yourorg.RemoveDependencyExample`. diff --git a/docs/recipes/javascript/reordermethodarguments.md b/docs/recipes/javascript/reordermethodarguments.md index 59346ffecc..758db1e123 100644 --- a/docs/recipes/javascript/reordermethodarguments.md +++ b/docs/recipes/javascript/reordermethodarguments.md @@ -45,6 +45,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to ApacheHttpClient 5.x Classes Namespace from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_classmapping.md) * [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) * [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) +* [Reorder method arguments](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/reordermethodarguments) * [Reorder the arguments of `RequestBody.create()`](/recipes/okhttp/reorderrequestbodycreatearguments.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/java/migrate/jakarta/removalsservletjakarta10.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/oracle/weblogic/rewrite/jakarta/removalsservletjakarta9.md) diff --git a/docs/recipes/javascript/upgradedependencyversion.md b/docs/recipes/javascript/upgradedependencyversion.md index 216bc0082c..fd97d4c254 100644 --- a/docs/recipes/javascript/upgradedependencyversion.md +++ b/docs/recipes/javascript/upgradedependencyversion.md @@ -30,6 +30,27 @@ This recipe is available under the [Moderne Source Available License](https://do | `String` | newVersion | The new version constraint to set on matching dependencies. | `^5.0.0` | +## Used by + +This recipe is used as part of the following composite recipes: + +* [Upgrade to Angular 10](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular10) +* [Upgrade to Angular 11](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular11) +* [Upgrade to Angular 12](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular12) +* [Upgrade to Angular 13](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular13) +* [Upgrade to Angular 14](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular14) +* [Upgrade to Angular 15](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular15) +* [Upgrade to Angular 16](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular16) +* [Upgrade to Angular 17](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular17) +* [Upgrade to Angular 18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular18) +* [Upgrade to Angular 19](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular19) +* [Upgrade to Angular 20](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular20) +* [Upgrade to Angular 21](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular21) +* [Upgrade to Angular 8](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular8) +* [Upgrade to Angular 9](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular9) +* [Upgrade to PrimeNG 18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/upgradeto18) + + ## Usage This recipe has required configuration parameters. Recipes with required configuration parameters cannot be activated directly (unless you are running them via the Moderne CLI). To activate this recipe you must create a new recipe which fills in the required parameters. In your `rewrite.yml` create a new recipe with a unique name. For example: `com.yourorg.UpgradeDependencyVersionExample`. diff --git a/docs/recipes/prethink/calm/generatecalmarchitecture.md b/docs/recipes/prethink/calm/generatecalmarchitecture.md index 43d68f8b26..f1efcd499b 100644 --- a/docs/recipes/prethink/calm/generatecalmarchitecture.md +++ b/docs/recipes/prethink/calm/generatecalmarchitecture.md @@ -11,7 +11,7 @@ import RunRecipe from '@site/src/components/RunRecipe'; **org.openrewrite.prethink.calm.GenerateCalmArchitecture** -_Generate a FINOS CALM (Common Architecture Language Model) JSON file from discovered service endpoints, database connections, external service calls, and messaging connections._ +_Generate a FINOS CALM (Common Architecture Language Model) JSON file from discovered service endpoints, database connections, external service calls, and messaging connections. This recipe is not meant to be run on its own. It only reads data tables that other Prethink discovery recipes populate first, so it produces nothing useful in isolation. Run it as part of a composite such as `org.openrewrite.prethink.UpdatePrethinkContext`._ ## Recipe source diff --git a/docs/recipes/python/changemethodname.md b/docs/recipes/python/changemethodname.md index f5cb93cf0b..0601d78669 100644 --- a/docs/recipes/python/changemethodname.md +++ b/docs/recipes/python/changemethodname.md @@ -53,6 +53,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change dataformat fury to fury in xml/java dsl.](/recipes/apache/camel/upgrade/camel413/furydsl.md) +* [Change method name](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changemethodname) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedchoicembeanmethodname.md) * [Change of method names brought by Camel JMX API changes](/recipes/apache/camel/upgrade/camel40/changemanagedfailoverloadbalancermbeanmethodname.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) @@ -88,6 +89,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from Micronaut 2.x to 3.x](/recipes/java/micronaut/micronaut2to3migration.md) * [Migrate from springdoc-openapi-common to springdoc-openapi-starter-common](/recipes/java/springdoc/migratespringdoccommon.md) * [Migrate packages to modular starters](/recipes/java/spring/boot4/migrateautoconfigurepackages.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x deprecated methods from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_deprecatedmethods.md) * [Migrate to Hibernate 6.0.x (Moderne Edition)](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate60-moderne-edition) * [Migrate to Hibernate 7.0.x (Community Edition)](/recipes/hibernate/migratetohibernate70-community-edition.md) @@ -149,6 +151,7 @@ This recipe is used as part of the following composite recipes: * [Replace deprecated String case conversions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedstringcaseconversions) * [Replace deprecated `appendln` with `appendLine`](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedappendln) * [Replace deprecated setters in `RestTemplateBuilder`](/recipes/java/spring/boot3/replaceresttemplatebuildermethods.md) +* [Spring Boot 4.0 Module Starter Relocations](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot4/modulestarterrelocations) * [The header name for the List metadata has changed](/recipes/apache/camel/upgrade/camel43/kafkametadata.md) * [Upgrade to JUnit 5.14](/recipes/java/testing/junit5/upgradetojunit514.md) * [Upgrade to SpringDoc 2.1](/recipes/java/springdoc/upgradespringdoc_2.md) diff --git a/docs/recipes/python/changepackage.md b/docs/recipes/python/changepackage.md index f986805460..7df949aa62 100644 --- a/docs/recipes/python/changepackage.md +++ b/docs/recipes/python/changepackage.md @@ -44,6 +44,7 @@ This recipe is used as part of the following composite recipes: * [Apply Axon Framework 5 serialization → conversion rename](/recipes/axonframework/migration/axon4toaxon5conversion.md) * [ArchUnit 0.x upgrade](/recipes/java/testing/archunit/archunit0to1migration.md) * [Change Tapestry 4 packages to Tapestry 5](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/tapestry/changetapestrypackages) +* [Change package](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changepackage) * [DataNucleus 4.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_4_0.md) * [DataNucleus 5.0 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_0.md) * [DataNucleus 5.2 package moves](/recipes/java/migrate/datanucleus/datanucleuspackagemoves_5_2.md) diff --git a/docs/recipes/python/changetype.md b/docs/recipes/python/changetype.md index 6322387a39..f9e003efc7 100644 --- a/docs/recipes/python/changetype.md +++ b/docs/recipes/python/changetype.md @@ -52,6 +52,7 @@ This recipe is used as part of the following composite recipes: * [Change auth related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeauthtypes.md) * [Change config related classes from v1 to v2](/recipes/amazon/awssdk/v2migration/changeconfigtypes.md) * [Change region related classes](/recipes/amazon/awssdk/v2migration/changeregiontypes.md) +* [Change type](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/changetype) * [Changed types of camel AI nested headers classes](/recipes/apache/camel/upgrade/camel415/ainestedheadersclasses.md) * [DataNucleus 4.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_4_0.md) * [DataNucleus 5.0 type changes](/recipes/java/migrate/datanucleus/datanucleustypechanges_5_0.md) diff --git a/docs/recipes/python/deletemethodargument.md b/docs/recipes/python/deletemethodargument.md index 065003d191..b00cb21766 100644 --- a/docs/recipes/python/deletemethodargument.md +++ b/docs/recipes/python/deletemethodargument.md @@ -37,8 +37,10 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac This recipe is used as part of the following composite recipes: +* [Delete method argument](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/deletemethodargument) * [Migrate Apache HttpCore Nio Input Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_nioinputbuffers.md) * [Migrate Apache HttpCore Nio Output Buffer classes to Apache HttpCore 5.x](/recipes/apache/httpclient5/upgradeapachehttpcore_5_niooutputbuffers.md) +* [Migrate removed `LocalStackContainer` members to Testcontainers 2.x](/recipes/java/testing/testcontainers/testcontainers2localstack.md) * [Migrate to ApacheHttpClient 5.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5.md) * [Migrate to Hibernate 7.2.x](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/hibernate/migratetohibernate72) * [Migrate to Kafka 4.0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kafka/migratetokafka40) diff --git a/docs/recipes/python/reordermethodarguments.md b/docs/recipes/python/reordermethodarguments.md index d456746341..8a4c9fa1c6 100644 --- a/docs/recipes/python/reordermethodarguments.md +++ b/docs/recipes/python/reordermethodarguments.md @@ -45,6 +45,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to ApacheHttpClient 5.x Classes Namespace from 4.x](/recipes/apache/httpclient5/upgradeapachehttpclient_5_classmapping.md) * [Migrates from Jackson 2.x to Jackson 3.x](/recipes/java/jackson/upgradejackson_2_3.md) * [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) +* [Reorder method arguments](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/reordermethodarguments) * [Reorder the arguments of `RequestBody.create()`](/recipes/okhttp/reorderrequestbodycreatearguments.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/java/migrate/jakarta/removalsservletjakarta10.md) * [Replace deprecated Jakarta Servlet methods and classes](/recipes/oracle/weblogic/rewrite/jakarta/removalsservletjakarta9.md) diff --git a/docs/recipes/quarkus/README.md b/docs/recipes/quarkus/README.md index e9834c05b2..bc58b6ab2f 100644 --- a/docs/recipes/quarkus/README.md +++ b/docs/recipes/quarkus/README.md @@ -43,6 +43,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Quarkus Updates Aggregate 3.31.0](./migratetoquarkus_v3_31_0.md) * [Quarkus Updates Aggregate 3.32.0](./migratetoquarkus_v3_32_0.md) * [Quarkus Updates Aggregate 3.33.0](./migratetoquarkus_v3_33_0.md) +* [Quarkus Updates Aggregate 3.37.0](./migratetoquarkus_v3_37_0.md) * [Quarkus Updates Aggregate 3.5.0](./migratetoquarkus_v3_5_0.md) * [Quarkus Updates Aggregate 3.6.0](./migratetoquarkus_v3_6_0.md) * [Quarkus Updates Aggregate 3.7.0](./migratetoquarkus_v3_7_0.md) @@ -58,7 +59,6 @@ _Recipes that include further recipes, often including the individual recipes be * [Configure `quarkus-maven-plugin` with reasonable defaults](./configurequarkusmavenpluginwithreasonabledefaults.md) * [Delete Quarkus configuration property](./deletequarkusproperty.md) * [Migrate SLF4J Logger injection and usage to Quarkus static `Log`](./slf4jtoquarkuslogger.md) -* [Quarkus Updates Aggregate 3.37.0](./migratetoquarkus_v3_37_0.md) * [Use `@ConfigMapping`](./configpropertiestoconfigmapping.md) * [Use Mutiny `multi.toHotStream()`](./multitransformhotstreamtomultihotstream.md) * [Use `native` profile in `quarkus-maven-plugin`](./migratequarkusmavenpluginnativeimagegoal.md) diff --git a/docs/recipes/quarkus/migratetoquarkus_v3_37_0.md b/docs/recipes/quarkus/migratetoquarkus_v3_37_0.md index 883e4591b2..94adfc9585 100644 --- a/docs/recipes/quarkus/migratetoquarkus_v3_37_0.md +++ b/docs/recipes/quarkus/migratetoquarkus_v3_37_0.md @@ -19,6 +19,10 @@ _Quarkus update recipes to upgrade your application to 3.37.0._ [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) +:::info +This recipe is composed of more than one recipe. If you want to customize the set of recipes this is composed of, you can find and copy the GitHub source for the recipe from the link above. +::: + This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). @@ -36,6 +40,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac **Recipes** * [Quarkus Updates Aggregate 3.33.0](../quarkus/migratetoquarkus_v3_33_0) +* [io.quarkus.updates.core.quarkus337.PanacheNextRelocations](../quarkus/updates/core/quarkus337/panachenextrelocations) @@ -55,6 +60,7 @@ preconditions: version: (,3.37.0) recipeList: - org.openrewrite.quarkus.MigrateToQuarkus_v3_33_0 + - io.quarkus.updates.core.quarkus337.PanacheNextRelocations ``` diff --git a/docs/recipes/quarkus/updates/core/README.md b/docs/recipes/quarkus/updates/core/README.md index 6cf16f576d..c1244cf804 100644 --- a/docs/recipes/quarkus/updates/core/README.md +++ b/docs/recipes/quarkus/updates/core/README.md @@ -22,6 +22,7 @@ description: Core OpenRewrite recipes. * [Quarkus33](/recipes/quarkus/updates/core/quarkus33) * [Quarkus330](/recipes/quarkus/updates/core/quarkus330) * [Quarkus331](/recipes/quarkus/updates/core/quarkus331) +* [Quarkus337](/recipes/quarkus/updates/core/quarkus337) * [Quarkus35](/recipes/quarkus/updates/core/quarkus35) * [Quarkus36](/recipes/quarkus/updates/core/quarkus36) * [Quarkus37](/recipes/quarkus/updates/core/quarkus37) diff --git a/docs/recipes/quarkus/updates/core/quarkus337/README.md b/docs/recipes/quarkus/updates/core/quarkus337/README.md new file mode 100644 index 0000000000..10817279aa --- /dev/null +++ b/docs/recipes/quarkus/updates/core/quarkus337/README.md @@ -0,0 +1,13 @@ +--- +description: Quarkus337 OpenRewrite recipes. +--- + +# Quarkus337 + +## Composite Recipes + +_Recipes that include further recipes, often including the individual recipes below._ + +* [io.quarkus.updates.core.quarkus337.PanacheNextRelocations](./panachenextrelocations.md) + + diff --git a/docs/recipes/quarkus/updates/core/quarkus337/panachenextrelocations.md b/docs/recipes/quarkus/updates/core/quarkus337/panachenextrelocations.md new file mode 100644 index 0000000000..87b9a37261 --- /dev/null +++ b/docs/recipes/quarkus/updates/core/quarkus337/panachenextrelocations.md @@ -0,0 +1,166 @@ +--- +title: "io.quarkus.updates.core.quarkus337.PanacheNextRelocations" +sidebar_label: "io.quarkus.updates.core.quarkus337.PanacheNextRelocations" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RunRecipe from '@site/src/components/RunRecipe'; + +# io.quarkus.updates.core.quarkus337.PanacheNextRelocations + +**io.quarkus.updates.core.quarkus337.PanacheNextRelocations** + +__ + +## Recipe source + +[GitHub: search?type=code&q=io.quarkus.updates.core.quarkus337.PanacheNextRelocations](https://github.com/search?type=code&q=io.quarkus.updates.core.quarkus337.PanacheNextRelocations), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +:::info +This recipe is composed of more than one recipe. If you want to customize the set of recipes this is composed of, you can find and copy the GitHub source for the recipe from the link above. +::: + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Definition + + + +* [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) + * oldGroupId: `io.quarkus` + * oldArtifactId: `quarkus-hibernate-panache-next` + * newArtifactId: `quarkus-data-hibernate` +* [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) + * oldGroupId: `io.quarkus` + * oldArtifactId: `quarkus-hibernate-panache-next-deployment` + * newArtifactId: `quarkus-data-hibernate-deployment` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: io.quarkus.updates.core.quarkus337.PanacheNextRelocations +displayName: io.quarkus.updates.core.quarkus337.PanacheNextRelocations +description: | + +recipeList: + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: io.quarkus + oldArtifactId: quarkus-hibernate-panache-next + newArtifactId: quarkus-data-hibernate + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: io.quarkus + oldArtifactId: quarkus-hibernate-panache-next-deployment + newArtifactId: quarkus-data-hibernate-deployment + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Quarkus Updates Aggregate 3.37.0](/recipes/quarkus/migratetoquarkus_v3_37_0.md) + + +## Usage + + + +## See how this recipe works across multiple open-source repositories + +import RecipeCallout from '@site/src/components/ModerneLink'; + + + +The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories. + +Please [contact Moderne](https://moderne.io/product) for more information about safely running the recipes on your own codebase in a private SaaS. +## Data Tables + + + + +### Source files that had results +**org.openrewrite.table.SourcesFileResults** + +_Source files that were modified by the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path before the run | The source path of the file before the run. `null` when a source file was created during the run. | +| Source path after the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. | +| Recipe that made changes | The specific recipe that made a change. | +| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. | +| Cycle | The recipe cycle in which the change was made. | + + + + + +### Source files that had search results +**org.openrewrite.table.SearchResults** + +_Search results that were found during the recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path of search result before the run | The source path of the file with the search result markers present. | +| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. `null` when a source file was deleted during the run. | +| Result | The trimmed printed tree of the LST element that the marker is attached to. | +| Description | The content of the description of the marker. | +| Recipe that added the search marker | The specific recipe that added the Search marker. | + + + + + +### Source files that errored on a recipe +**org.openrewrite.table.SourcesFileErrors** + +_The details of all errors produced by a recipe run._ + +| Column Name | Description | +| ----------- | ----------- | +| Source path | The file that failed to parse. | +| Recipe that made changes | The specific recipe that made a change. | +| Stack trace | The stack trace of the failure. | + + + + + +### Recipe performance +**org.openrewrite.table.RecipeRunStats** + +_Statistics used in analyzing the performance of recipes._ + +| Column Name | Description | +| ----------- | ----------- | +| The recipe | The recipe whose stats are being measured both individually and cumulatively. | +| Source file count | The number of source files the recipe ran over. | +| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. | +| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. | +| Max scanning time (ns) | The max time scanning any one source file. | +| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. | +| Max edit time (ns) | The max time editing any one source file. | + + + + diff --git a/docs/recipes/search/findcommitters.md b/docs/recipes/search/findcommitters.md index fda864f34b..a1bcbecb3b 100644 --- a/docs/recipes/search/findcommitters.md +++ b/docs/recipes/search/findcommitters.md @@ -75,7 +75,7 @@ _The distinct set of committers per repository._ | ----------- | ----------- | | Name | The name of the committer. | | Email | The email of the committer. | -| Last commit | The date of this committer's last commit. | +| Last commit | The date of this committer's last commit. Null when only committer identities were collected, without per-day commit detail. | | Number of commits | The number of commits made by this committer. | diff --git a/docs/recipes/yaml/mergeyaml.md b/docs/recipes/yaml/mergeyaml.md index b6c740818b..b7d8866c33 100644 --- a/docs/recipes/yaml/mergeyaml.md +++ b/docs/recipes/yaml/mergeyaml.md @@ -50,7 +50,6 @@ This recipe is used as part of the following composite recipes: * [Add manual workflow trigger](/recipes/github/addmanualtrigger.md) * [Add retry configuration](/recipes/gitlab/addretry.md) * [Add workflow rules](/recipes/gitlab/addworkflowrules.md) -* [Migrate from tibdex/github-app-token to actions/create-github-app-token](/recipes/github/migratetibdexgithubapptokentoactions.md) ## Example diff --git a/docs/reference/all-recipes-org-openrewrite-recipe.md b/docs/reference/all-recipes-org-openrewrite-recipe.md index 020cd92b8a..892378bc1f 100644 --- a/docs/reference/all-recipes-org-openrewrite-recipe.md +++ b/docs/reference/all-recipes-org-openrewrite-recipe.md @@ -1926,7 +1926,7 @@ _54 recipes_ * Migrates `astral-sh/setup-uv` from v6 to v7. Updates the action version and removes the deprecated `server-url` input. See the [v7.0.0 release notes](https://github.com/astral-sh/setup-uv/releases/tag/v7.0.0) for breaking changes. * [org.openrewrite.github.MigrateTibdexGitHubAppTokenToActions](/recipes/github/migratetibdexgithubapptokentoactions.md) * **Migrate from tibdex/github-app-token to actions/create-github-app-token** - * Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case. + * Migrates from the deprecated `tibdex/github-app-token@v2` to `actions/create-github-app-token@v3`, which runs on Node.js 24 instead of the deprecated Node.js 20. Renames the `app_id`, `private_key`, and `github_api_url` inputs to their kebab-case equivalents `app-id`, `private-key`, and `github-api-url`. * [org.openrewrite.github.PreferBlockStyleJobDependencies](/recipes/github/preferblockstylejobdependencies.md) * **Prefer block style for job dependencies** * Convert flow-style `needs` sequences (e.g. `needs: [dep1, dep2]`) to block-style in GitHub Actions workflow jobs when a job depends on more than one other job. Block style improves readability and produces cleaner diffs in source control. @@ -2122,7 +2122,7 @@ _22 recipes_ _License: Moderne Source Available License_ -_24 recipes_ +_26 recipes_ * [org.openrewrite.hibernate.AddScalarPreferStandardBasicTypes](/recipes/hibernate/addscalarpreferstandardbasictypes.md) * **AddScalarPreferStandardBasicTypesForHibernate5** @@ -2178,6 +2178,12 @@ _24 recipes_ * [org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate63](/recipes/hibernate/migratetohypersistenceutilshibernate63.md) * **Migrate Hibernate Types to Hypersistence Utils 6.3** * This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-62` to `io.hypersistence:hypersistence-utils-hibernate-63`. +* [org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate70](/recipes/hibernate/migratetohypersistenceutilshibernate70.md) + * **Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0** + * This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-63` to `io.hypersistence:hypersistence-utils-hibernate-70`. +* [org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate71](/recipes/hibernate/migratetohypersistenceutilshibernate71.md) + * **Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1** + * This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-70` to `io.hypersistence:hypersistence-utils-hibernate-71`. * [org.openrewrite.hibernate.MigrateUserType](/recipes/hibernate/migrateusertype.md) * **Migrate `UserType` to Hibernate 6** * With Hibernate 6 the `UserType` interface received a type parameter making it more strictly typed. This recipe applies the changes required to adhere to this change. @@ -2201,7 +2207,7 @@ _24 recipes_ _License: Apache License Version 2.0_ -_39 recipes_ +_42 recipes_ * [org.openrewrite.java.jackson.AddJsonCreatorToPrivateConstructors](/recipes/java/jackson/addjsoncreatortoprivateconstructors.md) * **Add `@JsonCreator` to non-public constructors** @@ -2230,6 +2236,9 @@ _39 recipes_ * [org.openrewrite.java.jackson.LombokJacksonizedConfig](/recipes/java/jackson/lombokjacksonizedconfig.md) * **Update `lombok.config` for Jackson 3 compatibility** * When `@Jacksonized` is used, Lombok generates Jackson annotations. By default it generates Jackson 2.x annotations. This recipe adds `lombok.jacksonized.jacksonVersion += 3` to `lombok.config` so Lombok generates Jackson 3 compatible annotations. +* [org.openrewrite.java.jackson.MigrateFactorySettersToBuilder](/recipes/java/jackson/migratefactorysetterstobuilder.md) + * **Migrate factory setter calls to builder pattern** + * In Jackson 3, `JsonFactory` is immutable and `new JsonFactory()` is no longer the right entry point: the concrete factory lives at `tools.jackson.core.json.JsonFactory` and is constructed via `JsonFactory.builder()...build()`. Configuration methods like `enable`, `disable`, `configure`, `setCharacterEscapes`, etc. must be called on the builder instead. This recipe migrates setter calls to the builder pattern when safe, or adds TODO comments when automatic migration is not possible. * [org.openrewrite.java.jackson.MigrateMapperSettersToBuilder](/recipes/java/jackson/migratemappersetterstobuilder.md) * **Migrate mapper setter calls to builder pattern** * In Jackson 3, `JsonMapper` and other format-aligned mappers are immutable. Configuration methods like `setFilterProvider`, `addMixIn`, `disable`, `enable`, etc. must be called on the builder instead. This recipe migrates setter calls to the builder pattern when safe, or adds TODO comments when automatic migration is not possible. @@ -2284,6 +2293,9 @@ _39 recipes_ * [org.openrewrite.java.jackson.UpgradeJackson_2_3_MethodRenames](/recipes/java/jackson/upgradejackson_2_3_methodrenames.md) * **Rename Jackson 2.x methods to 3.x equivalents** * Rename Jackson methods that were renamed in 3.x (e.g., `writeObject()` to `writePOJO()`, `getCurrentValue()` to `currentValue()`). +* [org.openrewrite.java.jackson.UpgradeJackson_2_3_ModernizeJacksonCoreFeatures](/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures.md) + * **Modernize legacy `jackson-core` feature constants** + * Jackson 2.10 moved most flag constants out of `JsonParser.Feature` and `JsonGenerator.Feature` into the new `JsonReadFeature` / `JsonWriteFeature` (for JSON-specific flags) and `StreamReadFeature` / `StreamWriteFeature` (for format-agnostic flags). Jackson 3 keeps only the modern locations. This recipe rewrites every legacy constant to its Jackson 2-modern equivalent so the rest of the Jackson 2 → 3 pipeline (in particular the builder migrations) sees flags the modern API will accept. * [org.openrewrite.java.jackson.UpgradeJackson_2_3_ObjectNodeMethodRenames](/recipes/java/jackson/upgradejackson_2_3_objectnodemethodrenames.md) * **Rename Jackson 2.x methods to 3.x equivalents for ObjectNode** * Rename ObjectNode methods deprecated in Jackson 2 and removed in 3.x (`put(String, JsonNode)` to `set`, `putAll` to `setAll`). @@ -2302,6 +2314,9 @@ _39 recipes_ * [org.openrewrite.java.jackson.UseFormatAlignedObjectMappers](/recipes/java/jackson/useformatalignedobjectmappers.md) * **Use format alignment `ObjectMappers`** * Replace wrapping `ObjectMapper` calls with their format aligned implementation. +* [org.openrewrite.java.jackson.UseJsonFactoryStaticBuilder](/recipes/java/jackson/usejsonfactorystaticbuilder.md) + * **Use `JsonFactory.builder()` over `new JsonFactoryBuilder()`** + * After the Jackson 2 → 3 migration, prefer the concrete static `JsonFactory.builder()` entry over `new JsonFactoryBuilder()` so `JsonFactory` chains read the same way as the format-aligned factories (`YAMLFactory.builder()`, `CBORFactory.builder()`, etc.). The reason `MigrateFactorySettersToBuilder` emits `new JsonFactoryBuilder()` in the first place is a Jackson 2 quirk — `JsonFactory.builder()` returned the wildcard `TSFBuilder<?, ?>` there. In Jackson 3 the static returns a concretely-typed `JsonFactoryBuilder`, so the constructor form no longer earns its keep. * [org.openrewrite.java.jackson.UseModernDateTimeSerialization](/recipes/java/jackson/usemoderndatetimeserialization.md) * **Use modern date/time serialization defaults** * Remove redundant `@JsonFormat` annotations on `java.time` types that specify ISO-8601 patterns, as Jackson 3 uses ISO-8601 as the default format (with `WRITE_DATES_AS_TIMESTAMPS` now disabled by default). @@ -3076,7 +3091,7 @@ _39 recipes_ _License: Moderne Source Available License_ -_458 recipes_ +_459 recipes_ * [com.google.guava.InlineGuavaMethods](/recipes/google/guava/inlineguavamethods.md) * **Inline `guava` methods annotated with `@InlineMe`** @@ -3120,6 +3135,9 @@ _458 recipes_ * [org.openrewrite.java.migrate.AddMissingMethodImplementation](/recipes/java/migrate/addmissingmethodimplementation.md) * **Adds missing method implementations** * Check for missing methods required by interfaces and adds them. +* [org.openrewrite.java.migrate.AddMockitoJavaAgentToMavenSurefirePlugin](/recipes/java/migrate/addmockitojavaagenttomavensurefireplugin.md) + * **Add Mockito Java Agent to Maven Surefire Plugin** + * Adds required configuration to specifically enable the Mockito/Bytebuddy Java agent in the Maven Surefire plugin for Java 21 compatibility. * [org.openrewrite.java.migrate.AddStaticVariableOnProducerSessionBean](/recipes/java/migrate/addstaticvariableonproducersessionbean.md) * **Adds `static` modifier to `@Produces` fields that are in session beans** * Ensures that the fields annotated with `@Produces` which is inside the session bean (`@Stateless`, `@Stateful`, or `@Singleton`) are declared `static`. @@ -3129,9 +3147,6 @@ _458 recipes_ * [org.openrewrite.java.migrate.AddSurefireFailsafeArgLine](/recipes/java/migrate/addsurefirefailsafeargline.md) * **Add `argLine` to surefire and failsafe plugins** * Adds the specified arguments to the `argLine` configuration of the Maven Surefire and Failsafe plugins, merging with any existing argLine value without duplicating arguments. -* [org.openrewrite.java.migrate.AddSurefireFailsafeArgLineForMockito](/recipes/java/migrate/addsurefirefailsafearglineformockito.md) - * **Add surefire `--add-opens` for Mockito/ByteBuddy** - * Adds `--add-opens` JVM arguments required by Mockito and ByteBuddy to the Maven Surefire and Failsafe plugin `argLine` configuration. Only applied when the project depends on Mockito. * [org.openrewrite.java.migrate.ArrayStoreExceptionToTypeNotPresentException](/recipes/java/migrate/arraystoreexceptiontotypenotpresentexception.md) * **Catch `TypeNotPresentException` thrown by `Class.getAnnotation()`** * Replace catch blocks for `ArrayStoreException` around `Class.getAnnotation()` with `TypeNotPresentException` to ensure compatibility with Java 11+. @@ -3336,6 +3351,9 @@ _458 recipes_ * [org.openrewrite.java.migrate.UpgradeJavaVersion](/recipes/java/migrate/upgradejavaversion.md) * **Upgrade Java version** * Upgrade build plugin configuration to use the specified Java version. This recipe changes `java.toolchain.languageVersion` in `build.gradle(.kts)` of gradle projects, or maven-compiler-plugin target version and related settings. Will not downgrade if the version is newer than the specified version. +* [org.openrewrite.java.migrate.UpgradeKotlinJvmTargetVersion](/recipes/java/migrate/upgradekotlinjvmtargetversion.md) + * **Upgrade Kotlin `jvmTarget` to match the Java version** + * Align the Kotlin `jvmTarget` with the project's Java version so the Kotlin compiler emits bytecode at the same level as `javac`. Covers `kotlin-maven-plugin` `<jvmTarget>` configuration and the Gradle `kotlinOptions \{ jvmTarget = ... \}` / `compilerOptions \{ jvmTarget = ... \}` blocks (Groovy and Kotlin DSL). Will not downgrade if the existing Kotlin target is higher than the requested version. * [org.openrewrite.java.migrate.UpgradePluginsForJava11](/recipes/java/migrate/upgradepluginsforjava11.md) * **Upgrade plugins to Java 11 compatible versions** * Updates plugins to version compatible with Java 11. @@ -4605,7 +4623,7 @@ _5 recipes_ * Generate FINOS CALM architecture diagram and update agent configuration files. This recipe expects CALM-related data tables (ServiceEndpoints, DatabaseConnections, ExternalServiceCalls, MessagingConnections, etc.) to be populated by other recipes in a composite. * [org.openrewrite.prethink.calm.GenerateCalmArchitecture](/recipes/prethink/calm/generatecalmarchitecture.md) * **Generate CALM architecture** - * Generate a FINOS CALM (Common Architecture Language Model) JSON file from discovered service endpoints, database connections, external service calls, and messaging connections. + * Generate a FINOS CALM (Common Architecture Language Model) JSON file from discovered service endpoints, database connections, external service calls, and messaging connections. This recipe is not meant to be run on its own. It only reads data tables that other Prethink discovery recipes populate first, so it produces nothing useful in isolation. Run it as part of a composite such as `org.openrewrite.prethink.UpdatePrethinkContext`. ## rewrite-quarkus @@ -6542,7 +6560,7 @@ _181 recipes_ _License: Moderne Source Available License_ -_254 recipes_ +_258 recipes_ * [org.openrewrite.java.testing.archunit.ArchUnit0to1Migration](/recipes/java/testing/archunit/archunit0to1migration.md) * **ArchUnit 0.x upgrade** @@ -7188,7 +7206,16 @@ _254 recipes_ * Replace `Mockito.when` on static (non mock) with try-with-resource with MockedStatic as Mockito4 no longer allows this. For JUnit 4/5 & TestNG: When `@Before*` is used, a `close` call is added to the corresponding `@After*` method. This change moves away from implicit bytecode manipulation for static method stubbing, making mocking behavior more explicit and scoped to avoid unintended side effects. * [org.openrewrite.java.testing.mockito.PowerMockRunnerDelegateToRunWith](/recipes/java/testing/mockito/powermockrunnerdelegatetorunwith.md) * **Replace PowerMock runner with JUnit `@RunWith`** - * Replaces `@RunWith(PowerMockRunner.class)`. If `@PowerMockRunnerDelegate(X.class)` is present, promotes the delegate runner to `@RunWith(X.class)`. Otherwise, removes the `@RunWith(PowerMockRunner.class)` annotation entirely. + * Replaces `@RunWith(PowerMockRunner.class)`. If `@PowerMockRunnerDelegate(X.class)` is present, promotes the delegate runner to `@RunWith(X.class)`. Otherwise, replaces it with `@RunWith(MockitoJUnitRunner.class)` when the class uses Mockito annotations like `@Mock`, or removes the `@RunWith(PowerMockRunner.class)` annotation entirely. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxGetInternalStateToJavaReflection](/recipes/java/testing/mockito/powermockwhiteboxgetinternalstatetojavareflection.md) + * **Replace PowerMock `Whitebox.getInternalState()` with Java reflection** + * Replace `Whitebox.getInternalState(Object, String)` with `java.lang.reflect.Field` access, casting to the declared result type where needed. The field lookup uses `getDeclaredField` on the target object's class, which differs from PowerMock's class-hierarchy traversal for fields inherited from a superclass. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxInvokeMethodToJavaReflection](/recipes/java/testing/mockito/powermockwhiteboxinvokemethodtojavareflection.md) + * **Replace PowerMock `Whitebox.invokeMethod()` with Java reflection** + * Replace `Whitebox.invokeMethod(Object, String, ..)` with `java.lang.reflect.Method` lookup and `invoke()`. Parameter types are taken from the unambiguously resolved target method, falling back to each argument's compile-time class. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxSetInternalStateToJavaReflection](/recipes/java/testing/mockito/powermockwhiteboxsetinternalstatetojavareflection.md) + * **Replace PowerMock `Whitebox.setInternalState()` with Java reflection** + * Replace `Whitebox.setInternalState(Object, String, Object)` and `Whitebox.setInternalState(Object, String, Object, Class)` with `java.lang.reflect.Field` access. The 3-arg overload looks up the field on the target's class; the 4-arg where-overload uses the supplied Class to resolve fields declared on a superclass. * [org.openrewrite.java.testing.mockito.PowerMockWhiteboxToJavaReflection](/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md) * **Replace PowerMock `Whitebox` with Java reflection** * Replace `org.powermock.reflect.Whitebox` calls (`setInternalState`, `getInternalState`, `invokeMethod`) with plain Java reflection using `java.lang.reflect.Field` and `java.lang.reflect.Method`. @@ -7276,6 +7303,9 @@ _254 recipes_ * [org.openrewrite.java.testing.testcontainers.Testcontainers2Dependencies](/recipes/java/testing/testcontainers/testcontainers2dependencies.md) * **Rename Testcontainers dependencies** * Change Testcontainers dependencies to adopt the new consistent `testcontainers-` prefix. +* [org.openrewrite.java.testing.testcontainers.Testcontainers2LocalStack](/recipes/java/testing/testcontainers/testcontainers2localstack.md) + * **Migrate removed `LocalStackContainer` members to Testcontainers 2.x** + * Testcontainers 2.x removed the nested `LocalStackContainer.Service` enum and the `getEndpointOverride(...)` method. Replace `LocalStackContainer.Service` constants with the equivalent service name strings and `getEndpointOverride(service)` with `getEndpoint()`, so code continues to compile against Testcontainers 2.x. This runs while the type is still `org.testcontainers.containers.localstack.LocalStackContainer`, before it is renamed. * [org.openrewrite.java.testing.testcontainers.Testcontainers2Migration](/recipes/java/testing/testcontainers/testcontainers2migration.md) * **Migrate to testcontainers-java 2.x** * Change dependencies and types to migrate to testcontainers-java 2.x. @@ -7311,7 +7341,7 @@ _254 recipes_ _License: Apache License Version 2.0_ -_1638 recipes_ +_1639 recipes_ * [ai.timefold.solver.migration.ChangeVersion](/recipes/timefold/solver/migration/changeversion.md) * **Change the Timefold version** @@ -8093,6 +8123,9 @@ _1638 recipes_ * [io.quarkus.updates.core.quarkus331.Testcontainers2](/recipes/quarkus/updates/core/quarkus331/testcontainers2.md) * **io.quarkus.updates.core.quarkus331.Testcontainers2** * +* [io.quarkus.updates.core.quarkus337.PanacheNextRelocations](/recipes/quarkus/updates/core/quarkus337/panachenextrelocations.md) + * **io.quarkus.updates.core.quarkus337.PanacheNextRelocations** + * * [io.quarkus.updates.core.quarkus35.MutinyUniAndGroupCombinedWith](/recipes/quarkus/updates/core/quarkus35/mutinyuniandgroupcombinedwith.md) * **io.quarkus.updates.core.quarkus35.MutinyUniAndGroupCombinedWith** * diff --git a/docs/reference/all-recipes-org-openrewrite.md b/docs/reference/all-recipes-org-openrewrite.md index 196f9f8e3f..4d0c85b48a 100644 --- a/docs/reference/all-recipes-org-openrewrite.md +++ b/docs/reference/all-recipes-org-openrewrite.md @@ -192,7 +192,7 @@ _18 recipes_ _License: Apache License Version 2.0_ -_74 recipes_ +_76 recipes_ * [org.openrewrite.gradle.AddDependency](/recipes/gradle/adddependency.md) * **Add Gradle dependency** @@ -332,6 +332,12 @@ _74 recipes_ * [org.openrewrite.gradle.gradle9.UseMainClassPropertyForApplication](/recipes/gradle/gradle9/usemainclasspropertyforapplication.md) * **Use `application \{ mainClass \}` instead of `mainClassName`** * The `mainClassName` property on the `application` extension was deprecated in Gradle 6.4 and removed in Gradle 9.0. Use `application \{ mainClass = ... \}` instead. Top-level `mainClassName` assignments are wrapped in an `application` block. See the [Gradle upgrade guide](https://docs.gradle.org/9.0.0/userguide/upgrading_major_version_9.html) for more information. +* [org.openrewrite.gradle.gradle9.UseMatchingInsteadOfFindAll](/recipes/gradle/gradle9/usematchinginsteadoffindall.md) + * **Use `matching(Closure)` instead of `findAll(Closure)` on Gradle container collections** + * Gradle 9.4 deprecates the Groovy `DomainObjectCollection.findAll(Closure)` overload on containers such as `tasks`, `configurations`, and `sourceSets`. It is replaced by the lazy `DomainObjectCollection.matching(Closure)`, which returns a live collection that only filters elements as they are needed by the build. This recipe only swaps the method name, leaving the closure argument unchanged, rewriting `findAll \{ ... \}` to `matching \{ ... \}` when the receiver is a known Gradle container collection. +* [org.openrewrite.gradle.gradle9.UseProjectDependencyInsteadOfModuleCoordinates](/recipes/gradle/gradle9/useprojectdependencyinsteadofmodulecoordinates.md) + * **Use `project(...)` dependency notation instead of the current project's module coordinates** + * Gradle 9.3 deprecates depending on the current project by its own `group:name:version` module coordinates. In Gradle 9.x such a declaration resolves to the project's local outgoing variants, but in Gradle 10 it will instead attempt resolution from a repository. This recipe replaces a dependency declaration whose coordinates match the current project with the equivalent `project("<path>")` notation. Requires the `GradleProject` marker (available when parsed by the OpenRewrite Gradle plugin) to know the current project's coordinates and path. * [org.openrewrite.gradle.gradle9.UseVersionClosure](/recipes/gradle/gradle9/useversionclosure.md) * **Use `version \{ \}` closure instead of `version = \{ \}` assignment** * Converts `version = \{ ... \}` assignment syntax to `version \{ ... \}` closure call syntax in Gradle dependency declarations. The assignment form is not valid Gradle DSL; the closure form invokes the version spec method directly. diff --git a/docs/reference/all-recipes.md b/docs/reference/all-recipes.md index 7ed1086df4..c966addd2b 100644 --- a/docs/reference/all-recipes.md +++ b/docs/reference/all-recipes.md @@ -6,7 +6,7 @@ description: A comprehensive list of all recipes organized by module. _This doc indexes per-module recipe lists. Click a groupId to see its recipes._ -Total recipes: 4450 +Total recipes: 4463 ## org.openrewrite diff --git a/docs/reference/latest-versions-of-every-openrewrite-module.md b/docs/reference/latest-versions-of-every-openrewrite-module.md index 69435279f7..46061a1f32 100644 --- a/docs/reference/latest-versions-of-every-openrewrite-module.md +++ b/docs/reference/latest-versions-of-every-openrewrite-module.md @@ -17,95 +17,93 @@ The use of the "bill of materials" means that a developer will only need to spec | Module | Version | License | |-----------------------------------------------------------------------------------------------------------------------| ---------- | ------- | -| [**org.openrewrite:rewrite-bom**](https://github.com/openrewrite/rewrite) | **[8.84.9](https://github.com/openrewrite/rewrite/releases/tag/v8.84.9)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [**org.openrewrite:rewrite-maven-plugin**](https://github.com/openrewrite/rewrite-maven-plugin) | **[6.41.0](https://github.com/openrewrite/rewrite-maven-plugin/releases/tag/v6.41.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [**org.openrewrite:rewrite-gradle-plugin**](https://github.com/openrewrite/rewrite-gradle-plugin) | **[7.34.0](https://github.com/openrewrite/rewrite-gradle-plugin/releases/tag/v7.34.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [**org.openrewrite.recipe:rewrite-recipe-bom**](https://github.com/openrewrite/rewrite-recipe-bom) | **[3.32.0](https://github.com/openrewrite/rewrite-recipe-bom/releases/tag/v3.32.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [**io.moderne.recipe:moderne-recipe-bom**](https://github.com/moderneinc/moderne-recipe-bom) | **[0.37.0](https://github.com/moderneinc/rewrite-recipe-bom/releases/tag/v0.37.0)** | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:recipes-kotlin](https://github.com/moderneinc/recipes-kotlin/blob/main/) | [0.1.1](https://github.com/moderneinc/recipes-kotlin/releases/tag/0.1.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:recipes-scala](https://github.com/moderneinc/recipes-scala/blob/main/) | [0.2.0](https://github.com/moderneinc/recipes-scala/releases/tag/0.2.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-ai](https://github.com/moderneinc/rewrite-ai/blob/main/) | [0.4.0](https://github.com/moderneinc/rewrite-ai/releases/tag/0.4.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-angular](https://github.com/moderneinc/rewrite-angular/blob/main/) | [1.3.1](https://github.com/moderneinc/rewrite-angular/releases/tag/1.3.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-cryptography](https://github.com/moderneinc/rewrite-cryptography/blob/main/) | [0.14.1](https://github.com/moderneinc/rewrite-cryptography/releases/tag/0.14.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [**org.openrewrite:rewrite-bom**](https://github.com/openrewrite/rewrite) | **[8.85.0](https://github.com/openrewrite/rewrite/releases/tag/v8.85.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [**org.openrewrite:rewrite-maven-plugin**](https://github.com/openrewrite/rewrite-maven-plugin) | **[6.42.0](https://github.com/openrewrite/rewrite-maven-plugin/releases/tag/v6.42.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [**org.openrewrite:rewrite-gradle-plugin**](https://github.com/openrewrite/rewrite-gradle-plugin) | **[7.35.0](https://github.com/openrewrite/rewrite-gradle-plugin/releases/tag/v7.35.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [**org.openrewrite.recipe:rewrite-recipe-bom**](https://github.com/openrewrite/rewrite-recipe-bom) | **[3.33.0](https://github.com/openrewrite/rewrite-recipe-bom/releases/tag/v3.33.0)** | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [**io.moderne.recipe:moderne-recipe-bom**](https://github.com/moderneinc/moderne-recipe-bom) | **[0.38.0](https://github.com/moderneinc/rewrite-recipe-bom/releases/tag/v0.38.0)** | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:recipes-kotlin](https://github.com/moderneinc/recipes-kotlin/blob/main/) | [0.1.2](https://github.com/moderneinc/recipes-kotlin/releases/tag/0.1.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:recipes-scala](https://github.com/moderneinc/recipes-scala/blob/main/) | [0.2.1](https://github.com/moderneinc/recipes-scala/releases/tag/0.2.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-ai](https://github.com/moderneinc/rewrite-ai/blob/main/) | [0.4.1](https://github.com/moderneinc/rewrite-ai/releases/tag/0.4.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-angular](https://github.com/moderneinc/rewrite-angular/blob/main/) | [1.4.0](https://github.com/moderneinc/rewrite-angular/releases/tag/1.4.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-cryptography](https://github.com/moderneinc/rewrite-cryptography/blob/main/) | [0.14.3](https://github.com/moderneinc/rewrite-cryptography/releases/tag/0.14.3) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | | [io.moderne.recipe:rewrite-cve-2026-22732](https://github.com/moderneinc/cve-2026-22732/blob/main/) | [0.3.0](https://github.com/moderneinc/cve-2026-22732/releases/tag/0.3.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-devcenter](https://github.com/moderneinc/rewrite-devcenter/blob/main/) | [1.25.0](https://github.com/moderneinc/rewrite-devcenter/releases/tag/1.25.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [io.moderne.recipe:rewrite-dropwizard](https://github.com/moderneinc/rewrite-dropwizard/blob/main/) | [0.4.0](https://github.com/moderneinc/rewrite-dropwizard/releases/tag/0.4.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-elastic](https://github.com/moderneinc/rewrite-elastic/blob/main/) | [0.7.0](https://github.com/moderneinc/rewrite-elastic/releases/tag/0.7.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-hibernate](https://github.com/moderneinc/rewrite-hibernate/blob/main/) | [0.24.0](https://github.com/moderneinc/rewrite-hibernate/releases/tag/0.24.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-jasperreports](https://github.com/moderneinc/rewrite-jasperreports/blob/main/) | [0.6.0](https://github.com/moderneinc/rewrite-jasperreports/releases/tag/0.6.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-java-application-server](https://github.com/moderneinc/rewrite-java-application-server/blob/main/) | [0.7.2](https://github.com/moderneinc/rewrite-java-application-server/releases/tag/0.7.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-kafka](https://github.com/moderneinc/rewrite-kafka/blob/main/) | [0.7.0](https://github.com/moderneinc/rewrite-kafka/releases/tag/0.7.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-prethink](https://github.com/moderneinc/rewrite-prethink/blob/main/) | [0.7.1](https://github.com/moderneinc/rewrite-prethink/releases/tag/0.7.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-program-analysis](https://github.com/moderneinc/rewrite-program-analysis/blob/main/) | [0.12.8](https://github.com/moderneinc/rewrite-program-analysis/releases/tag/0.12.8) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-react](https://github.com/moderneinc/rewrite-react/blob/main/) | [0.3.1](https://github.com/moderneinc/rewrite-react/releases/tag/0.3.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-release-metromap](https://github.com/moderneinc/rewrite-release-metromap/blob/main/) | [0.3.0](https://github.com/moderneinc/rewrite-release-metromap/releases/tag/0.3.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-spring](https://github.com/moderneinc/rewrite-spring/blob/main/) | [0.34.0](https://github.com/moderneinc/rewrite-spring/releases/tag/0.34.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-tapestry](https://github.com/moderneinc/rewrite-tapestry/blob/main/) | [0.4.0](https://github.com/moderneinc/rewrite-tapestry/releases/tag/0.4.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-vulncheck](https://github.com/moderneinc/rewrite-vulncheck/blob/main/) | [0.7.0](https://github.com/moderneinc/rewrite-vulncheck/releases/tag/0.7.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite:rewrite-cobol](https://github.com/moderneinc/rewrite-cobol/blob/main/) | [2.18.0](https://github.com/moderneinc/rewrite-cobol/releases/tag/2.18.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite:rewrite-core](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-csharp](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite:rewrite-docker](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-gradle](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-groovy](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-hcl](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-java](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-javascript](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite:rewrite-json](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-kotlin](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-maven](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-polyglot](https://github.com/openrewrite/rewrite-polyglot/blob/main/) | [2.10.8](https://github.com/openrewrite/rewrite-polyglot/releases/tag/2.10.8) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-properties](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-protobuf](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-python](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite:rewrite-templating](https://github.com/openrewrite/rewrite-templating/blob/main/) | [1.41.8](https://github.com/openrewrite/rewrite-templating/releases/tag/1.41.8) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-toml](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-xml](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-yaml](https://github.com/openrewrite/rewrite/blob/main/) | [8.84.9](https://github.com/openrewrite/rewrite/releases/tag/8.84.9) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.meta:rewrite-analysis](https://github.com/openrewrite/rewrite-analysis/blob/main/) | [2.34.0](https://github.com/openrewrite/rewrite-analysis/releases/tag/2.34.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-all](https://github.com/openrewrite/rewrite-all/blob/main/) | [1.26.0](https://github.com/openrewrite/rewrite-all/releases/tag/1.26.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-android](https://github.com/moderneinc/rewrite-android/blob/main/) | [0.18.0](https://github.com/moderneinc/rewrite-android/releases/tag/0.18.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-apache](https://github.com/openrewrite/rewrite-apache/blob/main/) | [2.27.0](https://github.com/openrewrite/rewrite-apache/releases/tag/2.27.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-circleci](https://github.com/moderneinc/rewrite-circleci/blob/main/) | [3.12.0](https://github.com/moderneinc/rewrite-circleci/releases/tag/3.12.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-codemods](https://github.com/moderneinc/rewrite-codemods/blob/main/) | [0.26.0](https://github.com/moderneinc/rewrite-codemods/releases/tag/0.26.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-codemods-ng](https://github.com/moderneinc/rewrite-codemods-ng/blob/main/) | [0.21.0](https://github.com/moderneinc/rewrite-codemods-ng/releases/tag/0.21.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-compiled-analysis](https://github.com/moderneinc/rewrite-compiled-analysis/blob/main/) | [0.14.0](https://github.com/moderneinc/rewrite-compiled-analysis/releases/tag/0.14.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-concourse](https://github.com/moderneinc/rewrite-concourse/blob/main/) | [3.11.0](https://github.com/moderneinc/rewrite-concourse/releases/tag/3.11.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-cucumber-jvm](https://github.com/openrewrite/rewrite-cucumber-jvm/blob/main/) | [2.12.0](https://github.com/openrewrite/rewrite-cucumber-jvm/releases/tag/2.12.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-dotnet](https://github.com/moderneinc/rewrite-dotnet/blob/main/) | [0.16.0](https://github.com/moderneinc/rewrite-dotnet/releases/tag/0.16.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-feature-flags](https://github.com/openrewrite/rewrite-feature-flags/blob/main/) | [1.21.0](https://github.com/openrewrite/rewrite-feature-flags/releases/tag/1.21.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-github-actions](https://github.com/openrewrite/rewrite-github-actions/blob/main/) | [3.24.0](https://github.com/openrewrite/rewrite-github-actions/releases/tag/3.24.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-gitlab](https://github.com/openrewrite/rewrite-gitlab/blob/main/) | [0.23.0](https://github.com/openrewrite/rewrite-gitlab/releases/tag/0.23.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-hibernate](https://github.com/openrewrite/rewrite-hibernate/blob/main/) | [2.21.0](https://github.com/openrewrite/rewrite-hibernate/releases/tag/2.21.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-jackson](https://github.com/openrewrite/rewrite-jackson/blob/main/) | [1.24.0](https://github.com/openrewrite/rewrite-jackson/releases/tag/1.24.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-java-dependencies](https://github.com/openrewrite/rewrite-java-dependencies/blob/main/) | [1.55.3](https://github.com/openrewrite/rewrite-java-dependencies/releases/tag/1.55.3) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-java-security](https://github.com/moderneinc/rewrite-java-security/blob/main/) | [3.32.0](https://github.com/moderneinc/rewrite-java-security/releases/tag/3.32.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-jenkins](https://github.com/openrewrite/rewrite-jenkins/blob/main/) | [0.36.0](https://github.com/openrewrite/rewrite-jenkins/releases/tag/0.36.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-joda](https://github.com/openrewrite/rewrite-joda/blob/main/) | [0.9.0](https://github.com/openrewrite/rewrite-joda/releases/tag/0.9.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-kubernetes](https://github.com/moderneinc/rewrite-kubernetes/blob/main/) | [3.17.0](https://github.com/moderneinc/rewrite-kubernetes/releases/tag/3.17.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-liberty](https://github.com/openrewrite/rewrite-liberty/blob/main/) | [1.24.0](https://github.com/openrewrite/rewrite-liberty/releases/tag/1.24.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-logging-frameworks](https://github.com/openrewrite/rewrite-logging-frameworks/blob/main/) | [3.29.0](https://github.com/openrewrite/rewrite-logging-frameworks/releases/tag/3.29.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-micrometer](https://github.com/openrewrite/rewrite-micrometer/blob/main/) | [0.29.0](https://github.com/openrewrite/rewrite-micrometer/releases/tag/0.29.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-micronaut](https://github.com/openrewrite/rewrite-micronaut/blob/main/) | [2.34.1](https://github.com/openrewrite/rewrite-micronaut/releases/tag/2.34.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-migrate-java](https://github.com/openrewrite/rewrite-migrate-java/blob/main/) | [3.36.0](https://github.com/openrewrite/rewrite-migrate-java/releases/tag/3.36.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-migrate-kotlin](https://github.com/moderneinc/rewrite-migrate-kotlin/blob/main/) | [0.5.0](https://github.com/moderneinc/rewrite-migrate-kotlin/releases/tag/0.5.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-migrate-python](https://github.com/moderneinc/rewrite-migrate-python/blob/main/) | [0.8.0](https://github.com/moderneinc/rewrite-migrate-python/releases/tag/0.8.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-netty](https://github.com/openrewrite/rewrite-netty/blob/main/) | [0.10.0](https://github.com/openrewrite/rewrite-netty/releases/tag/0.10.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-nodejs](https://github.com/moderneinc/rewrite-nodejs/blob/main/) | [0.46.1](https://github.com/moderneinc/rewrite-nodejs/releases/tag/0.46.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-okhttp](https://github.com/openrewrite/rewrite-okhttp/blob/main/) | [0.23.0](https://github.com/openrewrite/rewrite-okhttp/releases/tag/0.23.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-openapi](https://github.com/openrewrite/rewrite-openapi/blob/main/) | [0.32.0](https://github.com/openrewrite/rewrite-openapi/releases/tag/0.32.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-prethink](https://github.com/openrewrite/rewrite-prethink/blob/main/) | [0.6.0](https://github.com/openrewrite/rewrite-prethink/releases/tag/0.6.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-quarkus](https://github.com/openrewrite/rewrite-quarkus/blob/main/) | [2.33.0](https://github.com/openrewrite/rewrite-quarkus/releases/tag/2.33.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-reactive-streams](https://github.com/moderneinc/rewrite-reactive-streams/blob/main/) | [0.20.0](https://github.com/moderneinc/rewrite-reactive-streams/releases/tag/0.20.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-rewrite](https://github.com/openrewrite/rewrite-rewrite/blob/main/) | [0.26.0](https://github.com/openrewrite/rewrite-rewrite/releases/tag/0.26.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-spring](https://github.com/openrewrite/rewrite-spring/blob/main/) | [6.32.1](https://github.com/openrewrite/rewrite-spring/releases/tag/6.32.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-spring-to-quarkus](https://github.com/openrewrite/rewrite-spring-to-quarkus/blob/main/) | [0.10.0](https://github.com/openrewrite/rewrite-spring-to-quarkus/releases/tag/0.10.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-sql](https://github.com/moderneinc/rewrite-sql/blob/main/) | [2.12.0](https://github.com/moderneinc/rewrite-sql/releases/tag/2.12.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-static-analysis](https://github.com/openrewrite/rewrite-static-analysis/blob/main/) | [2.36.0](https://github.com/openrewrite/rewrite-static-analysis/releases/tag/2.36.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-struts](https://github.com/moderneinc/rewrite-struts/blob/main/) | [0.26.0](https://github.com/moderneinc/rewrite-struts/releases/tag/0.26.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-terraform](https://github.com/moderneinc/rewrite-terraform/blob/main/) | [3.14.2](https://github.com/moderneinc/rewrite-terraform/releases/tag/3.14.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-testing-frameworks](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/) | [3.37.0](https://github.com/openrewrite/rewrite-testing-frameworks/releases/tag/3.37.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-third-party](https://github.com/openrewrite/rewrite-third-party/blob/main/) | [0.40.1](https://github.com/openrewrite/rewrite-third-party/releases/tag/0.40.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [io.moderne.recipe:rewrite-devcenter](https://github.com/moderneinc/rewrite-devcenter/blob/main/) | [1.26.0](https://github.com/moderneinc/rewrite-devcenter/releases/tag/1.26.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [io.moderne.recipe:rewrite-dropwizard](https://github.com/moderneinc/rewrite-dropwizard/blob/main/) | [0.5.1](https://github.com/moderneinc/rewrite-dropwizard/releases/tag/0.5.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-elastic](https://github.com/moderneinc/rewrite-elastic/blob/main/) | [0.7.1](https://github.com/moderneinc/rewrite-elastic/releases/tag/0.7.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-hibernate](https://github.com/moderneinc/rewrite-hibernate/blob/main/) | [0.25.0](https://github.com/moderneinc/rewrite-hibernate/releases/tag/0.25.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-jasperreports](https://github.com/moderneinc/rewrite-jasperreports/blob/main/) | [0.6.1](https://github.com/moderneinc/rewrite-jasperreports/releases/tag/0.6.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-java-application-server](https://github.com/moderneinc/rewrite-java-application-server/blob/main/) | [0.7.3](https://github.com/moderneinc/rewrite-java-application-server/releases/tag/0.7.3) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-kafka](https://github.com/moderneinc/rewrite-kafka/blob/main/) | [0.7.1](https://github.com/moderneinc/rewrite-kafka/releases/tag/0.7.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-prethink](https://github.com/moderneinc/rewrite-prethink/blob/main/) | [0.7.3](https://github.com/moderneinc/rewrite-prethink/releases/tag/0.7.3) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-program-analysis](https://github.com/moderneinc/rewrite-program-analysis/blob/main/) | [0.12.9](https://github.com/moderneinc/rewrite-program-analysis/releases/tag/0.12.9) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-react](https://github.com/moderneinc/rewrite-react/blob/main/) | [0.3.2](https://github.com/moderneinc/rewrite-react/releases/tag/0.3.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-release-metromap](https://github.com/moderneinc/rewrite-release-metromap/blob/main/) | [0.4.0](https://github.com/moderneinc/rewrite-release-metromap/releases/tag/0.4.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-spring](https://github.com/moderneinc/rewrite-spring/blob/main/) | [0.35.0](https://github.com/moderneinc/rewrite-spring/releases/tag/0.35.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-tapestry](https://github.com/moderneinc/rewrite-tapestry/blob/main/) | [0.4.1](https://github.com/moderneinc/rewrite-tapestry/releases/tag/0.4.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-vulncheck](https://github.com/moderneinc/rewrite-vulncheck/blob/main/) | [0.7.2](https://github.com/moderneinc/rewrite-vulncheck/releases/tag/0.7.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite:rewrite-cobol](https://github.com/moderneinc/rewrite-cobol/blob/main/) | [2.19.0](https://github.com/moderneinc/rewrite-cobol/releases/tag/2.19.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite:rewrite-core](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-csharp](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite:rewrite-docker](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-gradle](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-groovy](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-hcl](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-java](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-javascript](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite:rewrite-json](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-kotlin](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-maven](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-properties](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-protobuf](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-python](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite:rewrite-toml](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-xml](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-yaml](https://github.com/openrewrite/rewrite/blob/main/) | [8.85.0](https://github.com/openrewrite/rewrite/releases/tag/8.85.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.meta:rewrite-analysis](https://github.com/openrewrite/rewrite-analysis/blob/main/) | [2.35.0](https://github.com/openrewrite/rewrite-analysis/releases/tag/2.35.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-all](https://github.com/openrewrite/rewrite-all/blob/main/) | [1.26.2](https://github.com/openrewrite/rewrite-all/releases/tag/1.26.2) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-android](https://github.com/moderneinc/rewrite-android/blob/main/) | [0.18.1](https://github.com/moderneinc/rewrite-android/releases/tag/0.18.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-apache](https://github.com/openrewrite/rewrite-apache/blob/main/) | [2.27.1](https://github.com/openrewrite/rewrite-apache/releases/tag/2.27.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-circleci](https://github.com/moderneinc/rewrite-circleci/blob/main/) | [3.12.1](https://github.com/moderneinc/rewrite-circleci/releases/tag/3.12.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-codemods](https://github.com/moderneinc/rewrite-codemods/blob/main/) | [0.26.1](https://github.com/moderneinc/rewrite-codemods/releases/tag/0.26.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-codemods-ng](https://github.com/moderneinc/rewrite-codemods-ng/blob/main/) | [0.21.1](https://github.com/moderneinc/rewrite-codemods-ng/releases/tag/0.21.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-compiled-analysis](https://github.com/moderneinc/rewrite-compiled-analysis/blob/main/) | [0.14.1](https://github.com/moderneinc/rewrite-compiled-analysis/releases/tag/0.14.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-concourse](https://github.com/moderneinc/rewrite-concourse/blob/main/) | [3.11.1](https://github.com/moderneinc/rewrite-concourse/releases/tag/3.11.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-cucumber-jvm](https://github.com/openrewrite/rewrite-cucumber-jvm/blob/main/) | [2.12.1](https://github.com/openrewrite/rewrite-cucumber-jvm/releases/tag/2.12.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-dotnet](https://github.com/moderneinc/rewrite-dotnet/blob/main/) | [0.16.1](https://github.com/moderneinc/rewrite-dotnet/releases/tag/0.16.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-feature-flags](https://github.com/openrewrite/rewrite-feature-flags/blob/main/) | [1.21.1](https://github.com/openrewrite/rewrite-feature-flags/releases/tag/1.21.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-github-actions](https://github.com/openrewrite/rewrite-github-actions/blob/main/) | [3.25.0](https://github.com/openrewrite/rewrite-github-actions/releases/tag/3.25.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-gitlab](https://github.com/openrewrite/rewrite-gitlab/blob/main/) | [0.23.1](https://github.com/openrewrite/rewrite-gitlab/releases/tag/0.23.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-hibernate](https://github.com/openrewrite/rewrite-hibernate/blob/main/) | [2.22.0](https://github.com/openrewrite/rewrite-hibernate/releases/tag/2.22.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-jackson](https://github.com/openrewrite/rewrite-jackson/blob/main/) | [1.25.0](https://github.com/openrewrite/rewrite-jackson/releases/tag/1.25.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-java-dependencies](https://github.com/openrewrite/rewrite-java-dependencies/blob/main/) | [1.56.0](https://github.com/openrewrite/rewrite-java-dependencies/releases/tag/1.56.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-java-security](https://github.com/moderneinc/rewrite-java-security/blob/main/) | [3.33.1](https://github.com/moderneinc/rewrite-java-security/releases/tag/3.33.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-jenkins](https://github.com/openrewrite/rewrite-jenkins/blob/main/) | [0.36.1](https://github.com/openrewrite/rewrite-jenkins/releases/tag/0.36.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-joda](https://github.com/openrewrite/rewrite-joda/blob/main/) | [0.9.1](https://github.com/openrewrite/rewrite-joda/releases/tag/0.9.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-kubernetes](https://github.com/moderneinc/rewrite-kubernetes/blob/main/) | [3.17.1](https://github.com/moderneinc/rewrite-kubernetes/releases/tag/3.17.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-liberty](https://github.com/openrewrite/rewrite-liberty/blob/main/) | [1.24.1](https://github.com/openrewrite/rewrite-liberty/releases/tag/1.24.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-logging-frameworks](https://github.com/openrewrite/rewrite-logging-frameworks/blob/main/) | [3.29.1](https://github.com/openrewrite/rewrite-logging-frameworks/releases/tag/3.29.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-micrometer](https://github.com/openrewrite/rewrite-micrometer/blob/main/) | [0.29.1](https://github.com/openrewrite/rewrite-micrometer/releases/tag/0.29.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-micronaut](https://github.com/openrewrite/rewrite-micronaut/blob/main/) | [2.34.2](https://github.com/openrewrite/rewrite-micronaut/releases/tag/2.34.2) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-migrate-java](https://github.com/openrewrite/rewrite-migrate-java/blob/main/) | [3.37.0](https://github.com/openrewrite/rewrite-migrate-java/releases/tag/3.37.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-migrate-kotlin](https://github.com/moderneinc/rewrite-migrate-kotlin/blob/main/) | [0.6.0](https://github.com/moderneinc/rewrite-migrate-kotlin/releases/tag/0.6.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-migrate-python](https://github.com/moderneinc/rewrite-migrate-python/blob/main/) | [0.9.0](https://github.com/moderneinc/rewrite-migrate-python/releases/tag/0.9.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-netty](https://github.com/openrewrite/rewrite-netty/blob/main/) | [0.10.1](https://github.com/openrewrite/rewrite-netty/releases/tag/0.10.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-nodejs](https://github.com/moderneinc/rewrite-nodejs/blob/main/) | [0.46.2](https://github.com/moderneinc/rewrite-nodejs/releases/tag/0.46.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-okhttp](https://github.com/openrewrite/rewrite-okhttp/blob/main/) | [0.23.1](https://github.com/openrewrite/rewrite-okhttp/releases/tag/0.23.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-openapi](https://github.com/openrewrite/rewrite-openapi/blob/main/) | [0.32.1](https://github.com/openrewrite/rewrite-openapi/releases/tag/0.32.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-prethink](https://github.com/openrewrite/rewrite-prethink/blob/main/) | [0.7.0](https://github.com/openrewrite/rewrite-prethink/releases/tag/0.7.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-quarkus](https://github.com/openrewrite/rewrite-quarkus/blob/main/) | [2.33.1](https://github.com/openrewrite/rewrite-quarkus/releases/tag/2.33.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-reactive-streams](https://github.com/moderneinc/rewrite-reactive-streams/blob/main/) | [0.20.1](https://github.com/moderneinc/rewrite-reactive-streams/releases/tag/0.20.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-rewrite](https://github.com/openrewrite/rewrite-rewrite/blob/main/) | [0.26.1](https://github.com/openrewrite/rewrite-rewrite/releases/tag/0.26.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-spring](https://github.com/openrewrite/rewrite-spring/blob/main/) | [6.33.0](https://github.com/openrewrite/rewrite-spring/releases/tag/6.33.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-spring-to-quarkus](https://github.com/openrewrite/rewrite-spring-to-quarkus/blob/main/) | [0.10.1](https://github.com/openrewrite/rewrite-spring-to-quarkus/releases/tag/0.10.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-sql](https://github.com/moderneinc/rewrite-sql/blob/main/) | [2.12.1](https://github.com/moderneinc/rewrite-sql/releases/tag/2.12.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-static-analysis](https://github.com/openrewrite/rewrite-static-analysis/blob/main/) | [2.37.0](https://github.com/openrewrite/rewrite-static-analysis/releases/tag/2.37.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-struts](https://github.com/moderneinc/rewrite-struts/blob/main/) | [0.26.1](https://github.com/moderneinc/rewrite-struts/releases/tag/0.26.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-terraform](https://github.com/moderneinc/rewrite-terraform/blob/main/) | [3.14.3](https://github.com/moderneinc/rewrite-terraform/releases/tag/3.14.3) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-testing-frameworks](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/) | [3.38.0](https://github.com/openrewrite/rewrite-testing-frameworks/releases/tag/3.38.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-third-party](https://github.com/openrewrite/rewrite-third-party/blob/main/) | [0.41.1](https://github.com/openrewrite/rewrite-third-party/releases/tag/0.41.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | ## CLI Installation @@ -115,7 +113,7 @@ Install the latest versions of all the OpenRewrite recipe modules into the Moder ```bash -mod config recipes jar install io.moderne.recipe:recipes-kotlin:{{VERSION_IO_MODERNE_RECIPE_RECIPES_KOTLIN}} io.moderne.recipe:recipes-scala:{{VERSION_IO_MODERNE_RECIPE_RECIPES_SCALA}} io.moderne.recipe:rewrite-ai:{{VERSION_IO_MODERNE_RECIPE_REWRITE_AI}} io.moderne.recipe:rewrite-cryptography:{{VERSION_IO_MODERNE_RECIPE_REWRITE_CRYPTOGRAPHY}} io.moderne.recipe:rewrite-cve-2026-22732:{{VERSION_IO_MODERNE_RECIPE_REWRITE_CVE_2026_22732}} io.moderne.recipe:rewrite-devcenter:{{VERSION_IO_MODERNE_RECIPE_REWRITE_DEVCENTER}} io.moderne.recipe:rewrite-dropwizard:{{VERSION_IO_MODERNE_RECIPE_REWRITE_DROPWIZARD}} io.moderne.recipe:rewrite-elastic:{{VERSION_IO_MODERNE_RECIPE_REWRITE_ELASTIC}} io.moderne.recipe:rewrite-hibernate:{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}} io.moderne.recipe:rewrite-jasperreports:{{VERSION_IO_MODERNE_RECIPE_REWRITE_JASPERREPORTS}} io.moderne.recipe:rewrite-java-application-server:{{VERSION_IO_MODERNE_RECIPE_REWRITE_JAVA_APPLICATION_SERVER}} io.moderne.recipe:rewrite-kafka:{{VERSION_IO_MODERNE_RECIPE_REWRITE_KAFKA}} io.moderne.recipe:rewrite-prethink:{{VERSION_IO_MODERNE_RECIPE_REWRITE_PRETHINK}} io.moderne.recipe:rewrite-program-analysis:{{VERSION_IO_MODERNE_RECIPE_REWRITE_PROGRAM_ANALYSIS}} io.moderne.recipe:rewrite-release-metromap:{{VERSION_IO_MODERNE_RECIPE_REWRITE_RELEASE_METROMAP}} io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} io.moderne.recipe:rewrite-tapestry:{{VERSION_IO_MODERNE_RECIPE_REWRITE_TAPESTRY}} io.moderne.recipe:rewrite-vulncheck:{{VERSION_IO_MODERNE_RECIPE_REWRITE_VULNCHECK}} org.openrewrite:rewrite-cobol:{{VERSION_ORG_OPENREWRITE_REWRITE_COBOL}} org.openrewrite:rewrite-core:{{VERSION_ORG_OPENREWRITE_REWRITE_CORE}} org.openrewrite:rewrite-csharp:{{VERSION_ORG_OPENREWRITE_REWRITE_CSHARP}} org.openrewrite:rewrite-docker:{{VERSION_ORG_OPENREWRITE_REWRITE_DOCKER}} org.openrewrite:rewrite-gradle:{{VERSION_ORG_OPENREWRITE_REWRITE_GRADLE}} org.openrewrite:rewrite-groovy:{{VERSION_ORG_OPENREWRITE_REWRITE_GROOVY}} org.openrewrite:rewrite-hcl:{{VERSION_ORG_OPENREWRITE_REWRITE_HCL}} org.openrewrite:rewrite-java:{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}} org.openrewrite:rewrite-json:{{VERSION_ORG_OPENREWRITE_REWRITE_JSON}} org.openrewrite:rewrite-kotlin:{{VERSION_ORG_OPENREWRITE_REWRITE_KOTLIN}} org.openrewrite:rewrite-maven:{{VERSION_ORG_OPENREWRITE_REWRITE_MAVEN}} org.openrewrite:rewrite-polyglot:{{VERSION_ORG_OPENREWRITE_REWRITE_POLYGLOT}} org.openrewrite:rewrite-properties:{{VERSION_ORG_OPENREWRITE_REWRITE_PROPERTIES}} org.openrewrite:rewrite-protobuf:{{VERSION_ORG_OPENREWRITE_REWRITE_PROTOBUF}} org.openrewrite:rewrite-templating:{{VERSION_ORG_OPENREWRITE_REWRITE_TEMPLATING}} org.openrewrite:rewrite-toml:{{VERSION_ORG_OPENREWRITE_REWRITE_TOML}} org.openrewrite:rewrite-xml:{{VERSION_ORG_OPENREWRITE_REWRITE_XML}} org.openrewrite:rewrite-yaml:{{VERSION_ORG_OPENREWRITE_REWRITE_YAML}} org.openrewrite.meta:rewrite-analysis:{{VERSION_ORG_OPENREWRITE_META_REWRITE_ANALYSIS}} org.openrewrite.recipe:rewrite-all:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ALL}} org.openrewrite.recipe:rewrite-android:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ANDROID}} org.openrewrite.recipe:rewrite-apache:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_APACHE}} org.openrewrite.recipe:rewrite-circleci:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CIRCLECI}} org.openrewrite.recipe:rewrite-codemods:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS}} org.openrewrite.recipe:rewrite-codemods-ng:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS_NG}} org.openrewrite.recipe:rewrite-compiled-analysis:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPILED_ANALYSIS}} org.openrewrite.recipe:rewrite-concourse:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CONCOURSE}} org.openrewrite.recipe:rewrite-cucumber-jvm:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CUCUMBER_JVM}} org.openrewrite.recipe:rewrite-dotnet:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOTNET}} org.openrewrite.recipe:rewrite-feature-flags:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_FEATURE_FLAGS}} org.openrewrite.recipe:rewrite-github-actions:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}} org.openrewrite.recipe:rewrite-gitlab:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITLAB}} org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} org.openrewrite.recipe:rewrite-jackson:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JACKSON}} org.openrewrite.recipe:rewrite-java-dependencies:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_DEPENDENCIES}} org.openrewrite.recipe:rewrite-java-security:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_SECURITY}} org.openrewrite.recipe:rewrite-jenkins:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JENKINS}} org.openrewrite.recipe:rewrite-joda:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JODA}} org.openrewrite.recipe:rewrite-kubernetes:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_KUBERNETES}} org.openrewrite.recipe:rewrite-liberty:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LIBERTY}} org.openrewrite.recipe:rewrite-logging-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LOGGING_FRAMEWORKS}} org.openrewrite.recipe:rewrite-micrometer:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICROMETER}} org.openrewrite.recipe:rewrite-micronaut:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICRONAUT}} org.openrewrite.recipe:rewrite-migrate-java:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}} org.openrewrite.recipe:rewrite-migrate-kotlin:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_KOTLIN}} org.openrewrite.recipe:rewrite-netty:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NETTY}} org.openrewrite.recipe:rewrite-okhttp:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OKHTTP}} org.openrewrite.recipe:rewrite-openapi:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OPENAPI}} org.openrewrite.recipe:rewrite-prethink:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_PRETHINK}} org.openrewrite.recipe:rewrite-quarkus:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_QUARKUS}} org.openrewrite.recipe:rewrite-reactive-streams:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REACTIVE_STREAMS}} org.openrewrite.recipe:rewrite-rewrite:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REWRITE}} org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}} org.openrewrite.recipe:rewrite-spring-to-quarkus:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING_TO_QUARKUS}} org.openrewrite.recipe:rewrite-sql:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SQL}} org.openrewrite.recipe:rewrite-static-analysis:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STATIC_ANALYSIS}} org.openrewrite.recipe:rewrite-struts:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STRUTS}} org.openrewrite.recipe:rewrite-terraform:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TERRAFORM}} org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}} org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +mod config recipes jar install io.moderne.recipe:recipes-kotlin:{{VERSION_IO_MODERNE_RECIPE_RECIPES_KOTLIN}} io.moderne.recipe:recipes-scala:{{VERSION_IO_MODERNE_RECIPE_RECIPES_SCALA}} io.moderne.recipe:rewrite-ai:{{VERSION_IO_MODERNE_RECIPE_REWRITE_AI}} io.moderne.recipe:rewrite-cryptography:{{VERSION_IO_MODERNE_RECIPE_REWRITE_CRYPTOGRAPHY}} io.moderne.recipe:rewrite-cve-2026-22732:{{VERSION_IO_MODERNE_RECIPE_REWRITE_CVE_2026_22732}} io.moderne.recipe:rewrite-devcenter:{{VERSION_IO_MODERNE_RECIPE_REWRITE_DEVCENTER}} io.moderne.recipe:rewrite-dropwizard:{{VERSION_IO_MODERNE_RECIPE_REWRITE_DROPWIZARD}} io.moderne.recipe:rewrite-elastic:{{VERSION_IO_MODERNE_RECIPE_REWRITE_ELASTIC}} io.moderne.recipe:rewrite-hibernate:{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}} io.moderne.recipe:rewrite-jasperreports:{{VERSION_IO_MODERNE_RECIPE_REWRITE_JASPERREPORTS}} io.moderne.recipe:rewrite-java-application-server:{{VERSION_IO_MODERNE_RECIPE_REWRITE_JAVA_APPLICATION_SERVER}} io.moderne.recipe:rewrite-kafka:{{VERSION_IO_MODERNE_RECIPE_REWRITE_KAFKA}} io.moderne.recipe:rewrite-prethink:{{VERSION_IO_MODERNE_RECIPE_REWRITE_PRETHINK}} io.moderne.recipe:rewrite-program-analysis:{{VERSION_IO_MODERNE_RECIPE_REWRITE_PROGRAM_ANALYSIS}} io.moderne.recipe:rewrite-release-metromap:{{VERSION_IO_MODERNE_RECIPE_REWRITE_RELEASE_METROMAP}} io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} io.moderne.recipe:rewrite-tapestry:{{VERSION_IO_MODERNE_RECIPE_REWRITE_TAPESTRY}} io.moderne.recipe:rewrite-vulncheck:{{VERSION_IO_MODERNE_RECIPE_REWRITE_VULNCHECK}} org.openrewrite:rewrite-cobol:{{VERSION_ORG_OPENREWRITE_REWRITE_COBOL}} org.openrewrite:rewrite-core:{{VERSION_ORG_OPENREWRITE_REWRITE_CORE}} org.openrewrite:rewrite-csharp:{{VERSION_ORG_OPENREWRITE_REWRITE_CSHARP}} org.openrewrite:rewrite-docker:{{VERSION_ORG_OPENREWRITE_REWRITE_DOCKER}} org.openrewrite:rewrite-gradle:{{VERSION_ORG_OPENREWRITE_REWRITE_GRADLE}} org.openrewrite:rewrite-groovy:{{VERSION_ORG_OPENREWRITE_REWRITE_GROOVY}} org.openrewrite:rewrite-hcl:{{VERSION_ORG_OPENREWRITE_REWRITE_HCL}} org.openrewrite:rewrite-java:{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}} org.openrewrite:rewrite-json:{{VERSION_ORG_OPENREWRITE_REWRITE_JSON}} org.openrewrite:rewrite-kotlin:{{VERSION_ORG_OPENREWRITE_REWRITE_KOTLIN}} org.openrewrite:rewrite-maven:{{VERSION_ORG_OPENREWRITE_REWRITE_MAVEN}} org.openrewrite:rewrite-properties:{{VERSION_ORG_OPENREWRITE_REWRITE_PROPERTIES}} org.openrewrite:rewrite-protobuf:{{VERSION_ORG_OPENREWRITE_REWRITE_PROTOBUF}} org.openrewrite:rewrite-toml:{{VERSION_ORG_OPENREWRITE_REWRITE_TOML}} org.openrewrite:rewrite-xml:{{VERSION_ORG_OPENREWRITE_REWRITE_XML}} org.openrewrite:rewrite-yaml:{{VERSION_ORG_OPENREWRITE_REWRITE_YAML}} org.openrewrite.meta:rewrite-analysis:{{VERSION_ORG_OPENREWRITE_META_REWRITE_ANALYSIS}} org.openrewrite.recipe:rewrite-all:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ALL}} org.openrewrite.recipe:rewrite-android:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ANDROID}} org.openrewrite.recipe:rewrite-apache:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_APACHE}} org.openrewrite.recipe:rewrite-circleci:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CIRCLECI}} org.openrewrite.recipe:rewrite-codemods:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS}} org.openrewrite.recipe:rewrite-codemods-ng:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS_NG}} org.openrewrite.recipe:rewrite-compiled-analysis:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPILED_ANALYSIS}} org.openrewrite.recipe:rewrite-concourse:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CONCOURSE}} org.openrewrite.recipe:rewrite-cucumber-jvm:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CUCUMBER_JVM}} org.openrewrite.recipe:rewrite-dotnet:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOTNET}} org.openrewrite.recipe:rewrite-feature-flags:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_FEATURE_FLAGS}} org.openrewrite.recipe:rewrite-github-actions:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}} org.openrewrite.recipe:rewrite-gitlab:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITLAB}} org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} org.openrewrite.recipe:rewrite-jackson:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JACKSON}} org.openrewrite.recipe:rewrite-java-dependencies:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_DEPENDENCIES}} org.openrewrite.recipe:rewrite-java-security:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_SECURITY}} org.openrewrite.recipe:rewrite-jenkins:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JENKINS}} org.openrewrite.recipe:rewrite-joda:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JODA}} org.openrewrite.recipe:rewrite-kubernetes:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_KUBERNETES}} org.openrewrite.recipe:rewrite-liberty:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LIBERTY}} org.openrewrite.recipe:rewrite-logging-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LOGGING_FRAMEWORKS}} org.openrewrite.recipe:rewrite-micrometer:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICROMETER}} org.openrewrite.recipe:rewrite-micronaut:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICRONAUT}} org.openrewrite.recipe:rewrite-migrate-java:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}} org.openrewrite.recipe:rewrite-migrate-kotlin:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_KOTLIN}} org.openrewrite.recipe:rewrite-netty:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NETTY}} org.openrewrite.recipe:rewrite-okhttp:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OKHTTP}} org.openrewrite.recipe:rewrite-openapi:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OPENAPI}} org.openrewrite.recipe:rewrite-prethink:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_PRETHINK}} org.openrewrite.recipe:rewrite-quarkus:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_QUARKUS}} org.openrewrite.recipe:rewrite-reactive-streams:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REACTIVE_STREAMS}} org.openrewrite.recipe:rewrite-rewrite:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REWRITE}} org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}} org.openrewrite.recipe:rewrite-spring-to-quarkus:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING_TO_QUARKUS}} org.openrewrite.recipe:rewrite-sql:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SQL}} org.openrewrite.recipe:rewrite-static-analysis:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STATIC_ANALYSIS}} org.openrewrite.recipe:rewrite-struts:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STRUTS}} org.openrewrite.recipe:rewrite-terraform:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TERRAFORM}} org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}} org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} mod config recipes pip install openrewrite=={{VERSION_ORG_OPENREWRITE_REWRITE_PYTHON}} openrewrite-migrate-python=={{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_PYTHON}} mod config recipes npm install @openrewrite/recipes-angular@{{VERSION_IO_MODERNE_RECIPE_REWRITE_ANGULAR}} @openrewrite/recipes-react@{{VERSION_IO_MODERNE_RECIPE_REWRITE_REACT}} @openrewrite/rewrite@{{VERSION_ORG_OPENREWRITE_REWRITE_JAVASCRIPT}} @openrewrite/recipes-nodejs@{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NODEJS}} ``` @@ -126,7 +124,7 @@ mod config recipes npm install @openrewrite/recipes-angular@{{VERSION_IO_MODERNE Install without a pinned version so you can later run `mod config recipes upgrade` to pull the newest versions without editing this command. ```bash -mod config recipes jar install io.moderne.recipe:recipes-kotlin:LATEST io.moderne.recipe:recipes-scala:LATEST io.moderne.recipe:rewrite-ai:LATEST io.moderne.recipe:rewrite-cryptography:LATEST io.moderne.recipe:rewrite-cve-2026-22732:LATEST io.moderne.recipe:rewrite-devcenter:LATEST io.moderne.recipe:rewrite-dropwizard:LATEST io.moderne.recipe:rewrite-elastic:LATEST io.moderne.recipe:rewrite-hibernate:LATEST io.moderne.recipe:rewrite-jasperreports:LATEST io.moderne.recipe:rewrite-java-application-server:LATEST io.moderne.recipe:rewrite-kafka:LATEST io.moderne.recipe:rewrite-prethink:LATEST io.moderne.recipe:rewrite-program-analysis:LATEST io.moderne.recipe:rewrite-release-metromap:LATEST io.moderne.recipe:rewrite-spring:LATEST io.moderne.recipe:rewrite-tapestry:LATEST io.moderne.recipe:rewrite-vulncheck:LATEST org.openrewrite:rewrite-cobol:LATEST org.openrewrite:rewrite-core:LATEST org.openrewrite:rewrite-csharp:LATEST org.openrewrite:rewrite-docker:LATEST org.openrewrite:rewrite-gradle:LATEST org.openrewrite:rewrite-groovy:LATEST org.openrewrite:rewrite-hcl:LATEST org.openrewrite:rewrite-java:LATEST org.openrewrite:rewrite-json:LATEST org.openrewrite:rewrite-kotlin:LATEST org.openrewrite:rewrite-maven:LATEST org.openrewrite:rewrite-polyglot:LATEST org.openrewrite:rewrite-properties:LATEST org.openrewrite:rewrite-protobuf:LATEST org.openrewrite:rewrite-templating:LATEST org.openrewrite:rewrite-toml:LATEST org.openrewrite:rewrite-xml:LATEST org.openrewrite:rewrite-yaml:LATEST org.openrewrite.meta:rewrite-analysis:LATEST org.openrewrite.recipe:rewrite-all:LATEST org.openrewrite.recipe:rewrite-android:LATEST org.openrewrite.recipe:rewrite-apache:LATEST org.openrewrite.recipe:rewrite-circleci:LATEST org.openrewrite.recipe:rewrite-codemods:LATEST org.openrewrite.recipe:rewrite-codemods-ng:LATEST org.openrewrite.recipe:rewrite-compiled-analysis:LATEST org.openrewrite.recipe:rewrite-concourse:LATEST org.openrewrite.recipe:rewrite-cucumber-jvm:LATEST org.openrewrite.recipe:rewrite-dotnet:LATEST org.openrewrite.recipe:rewrite-feature-flags:LATEST org.openrewrite.recipe:rewrite-github-actions:LATEST org.openrewrite.recipe:rewrite-gitlab:LATEST org.openrewrite.recipe:rewrite-hibernate:LATEST org.openrewrite.recipe:rewrite-jackson:LATEST org.openrewrite.recipe:rewrite-java-dependencies:LATEST org.openrewrite.recipe:rewrite-java-security:LATEST org.openrewrite.recipe:rewrite-jenkins:LATEST org.openrewrite.recipe:rewrite-joda:LATEST org.openrewrite.recipe:rewrite-kubernetes:LATEST org.openrewrite.recipe:rewrite-liberty:LATEST org.openrewrite.recipe:rewrite-logging-frameworks:LATEST org.openrewrite.recipe:rewrite-micrometer:LATEST org.openrewrite.recipe:rewrite-micronaut:LATEST org.openrewrite.recipe:rewrite-migrate-java:LATEST org.openrewrite.recipe:rewrite-migrate-kotlin:LATEST org.openrewrite.recipe:rewrite-netty:LATEST org.openrewrite.recipe:rewrite-okhttp:LATEST org.openrewrite.recipe:rewrite-openapi:LATEST org.openrewrite.recipe:rewrite-prethink:LATEST org.openrewrite.recipe:rewrite-quarkus:LATEST org.openrewrite.recipe:rewrite-reactive-streams:LATEST org.openrewrite.recipe:rewrite-rewrite:LATEST org.openrewrite.recipe:rewrite-spring:LATEST org.openrewrite.recipe:rewrite-spring-to-quarkus:LATEST org.openrewrite.recipe:rewrite-sql:LATEST org.openrewrite.recipe:rewrite-static-analysis:LATEST org.openrewrite.recipe:rewrite-struts:LATEST org.openrewrite.recipe:rewrite-terraform:LATEST org.openrewrite.recipe:rewrite-testing-frameworks:LATEST org.openrewrite.recipe:rewrite-third-party:LATEST +mod config recipes jar install io.moderne.recipe:recipes-kotlin:LATEST io.moderne.recipe:recipes-scala:LATEST io.moderne.recipe:rewrite-ai:LATEST io.moderne.recipe:rewrite-cryptography:LATEST io.moderne.recipe:rewrite-cve-2026-22732:LATEST io.moderne.recipe:rewrite-devcenter:LATEST io.moderne.recipe:rewrite-dropwizard:LATEST io.moderne.recipe:rewrite-elastic:LATEST io.moderne.recipe:rewrite-hibernate:LATEST io.moderne.recipe:rewrite-jasperreports:LATEST io.moderne.recipe:rewrite-java-application-server:LATEST io.moderne.recipe:rewrite-kafka:LATEST io.moderne.recipe:rewrite-prethink:LATEST io.moderne.recipe:rewrite-program-analysis:LATEST io.moderne.recipe:rewrite-release-metromap:LATEST io.moderne.recipe:rewrite-spring:LATEST io.moderne.recipe:rewrite-tapestry:LATEST io.moderne.recipe:rewrite-vulncheck:LATEST org.openrewrite:rewrite-cobol:LATEST org.openrewrite:rewrite-core:LATEST org.openrewrite:rewrite-csharp:LATEST org.openrewrite:rewrite-docker:LATEST org.openrewrite:rewrite-gradle:LATEST org.openrewrite:rewrite-groovy:LATEST org.openrewrite:rewrite-hcl:LATEST org.openrewrite:rewrite-java:LATEST org.openrewrite:rewrite-json:LATEST org.openrewrite:rewrite-kotlin:LATEST org.openrewrite:rewrite-maven:LATEST org.openrewrite:rewrite-properties:LATEST org.openrewrite:rewrite-protobuf:LATEST org.openrewrite:rewrite-toml:LATEST org.openrewrite:rewrite-xml:LATEST org.openrewrite:rewrite-yaml:LATEST org.openrewrite.meta:rewrite-analysis:LATEST org.openrewrite.recipe:rewrite-all:LATEST org.openrewrite.recipe:rewrite-android:LATEST org.openrewrite.recipe:rewrite-apache:LATEST org.openrewrite.recipe:rewrite-circleci:LATEST org.openrewrite.recipe:rewrite-codemods:LATEST org.openrewrite.recipe:rewrite-codemods-ng:LATEST org.openrewrite.recipe:rewrite-compiled-analysis:LATEST org.openrewrite.recipe:rewrite-concourse:LATEST org.openrewrite.recipe:rewrite-cucumber-jvm:LATEST org.openrewrite.recipe:rewrite-dotnet:LATEST org.openrewrite.recipe:rewrite-feature-flags:LATEST org.openrewrite.recipe:rewrite-github-actions:LATEST org.openrewrite.recipe:rewrite-gitlab:LATEST org.openrewrite.recipe:rewrite-hibernate:LATEST org.openrewrite.recipe:rewrite-jackson:LATEST org.openrewrite.recipe:rewrite-java-dependencies:LATEST org.openrewrite.recipe:rewrite-java-security:LATEST org.openrewrite.recipe:rewrite-jenkins:LATEST org.openrewrite.recipe:rewrite-joda:LATEST org.openrewrite.recipe:rewrite-kubernetes:LATEST org.openrewrite.recipe:rewrite-liberty:LATEST org.openrewrite.recipe:rewrite-logging-frameworks:LATEST org.openrewrite.recipe:rewrite-micrometer:LATEST org.openrewrite.recipe:rewrite-micronaut:LATEST org.openrewrite.recipe:rewrite-migrate-java:LATEST org.openrewrite.recipe:rewrite-migrate-kotlin:LATEST org.openrewrite.recipe:rewrite-netty:LATEST org.openrewrite.recipe:rewrite-okhttp:LATEST org.openrewrite.recipe:rewrite-openapi:LATEST org.openrewrite.recipe:rewrite-prethink:LATEST org.openrewrite.recipe:rewrite-quarkus:LATEST org.openrewrite.recipe:rewrite-reactive-streams:LATEST org.openrewrite.recipe:rewrite-rewrite:LATEST org.openrewrite.recipe:rewrite-spring:LATEST org.openrewrite.recipe:rewrite-spring-to-quarkus:LATEST org.openrewrite.recipe:rewrite-sql:LATEST org.openrewrite.recipe:rewrite-static-analysis:LATEST org.openrewrite.recipe:rewrite-struts:LATEST org.openrewrite.recipe:rewrite-terraform:LATEST org.openrewrite.recipe:rewrite-testing-frameworks:LATEST org.openrewrite.recipe:rewrite-third-party:LATEST mod config recipes pip install openrewrite openrewrite-migrate-python mod config recipes npm install @openrewrite/recipes-angular @openrewrite/recipes-react @openrewrite/rewrite @openrewrite/recipes-nodejs ``` @@ -308,11 +306,6 @@ mutation seedOpenRewriteArtifacts { ) { id } - load_org_openrewrite_rewrite_polyglot: installRecipesUniversal( - bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-polyglot", version: "LATEST" } } - ) { - id - } load_org_openrewrite_rewrite_properties: installRecipesUniversal( bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-properties", version: "LATEST" } } ) { @@ -328,11 +321,6 @@ mutation seedOpenRewriteArtifacts { ) { id } - load_org_openrewrite_rewrite_templating: installRecipesUniversal( - bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-templating", version: "LATEST" } } - ) { - id - } load_org_openrewrite_rewrite_toml: installRecipesUniversal( bundle: { maven: { groupId: "org.openrewrite", artifactId: "rewrite-toml", version: "LATEST" } } ) { diff --git a/docs/reference/moderne-recipes.md b/docs/reference/moderne-recipes.md index 85b3cbe59b..96c9543024 100644 --- a/docs/reference/moderne-recipes.md +++ b/docs/reference/moderne-recipes.md @@ -12,33 +12,6 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full ### recipes-code-quality -* [OpenRewrite.CSharp.Recipes.AddFrameworkReference](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/addframeworkreference) - * **Add framework reference** - * Adds a `<FrameworkReference>` to a .csproj if it isn't already present. -* [OpenRewrite.CSharp.Recipes.AddNuGetPackageReference](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/addnugetpackagereference) - * **Add NuGet package reference** - * Adds a `<PackageReference>` element to .csproj files if not already present. -* [OpenRewrite.CSharp.Recipes.ChangeDotNetTargetFramework](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/changedotnettargetframework) - * **Change .NET target framework** - * Changes the `<TargetFramework>` or `<TargetFrameworks>` value in .csproj files. For multi-TFM projects, replaces the matching framework within the semicolon-delimited list. -* [OpenRewrite.CSharp.Recipes.EnsureCsprojAttestation](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/ensurecsprojattestation) - * **Ensure csproj attestation** - * Re-runs `dotnet restore` against each .csproj whose `MSBuildProject` marker is stale (set by any csproj-mutating recipe in the run) and refreshes the marker from the resulting `project.assets.json`. Use this at the end of a composite recipe whose csproj-mutating sub-recipes have `RegenerateMarker = false`, so reattestation happens once on the final consistent state instead of after every edit. Unmodified .csproj files incur no `dotnet restore` cost. -* [OpenRewrite.CSharp.Recipes.FindNuGetPackageReference](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/findnugetpackagereference) - * **Find NuGet package reference** - * Searches for .csproj files that reference a specific NuGet package. Intended for use as a precondition to scope other recipes. -* [OpenRewrite.CSharp.Recipes.RemoveDotNetCliToolReference](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/removedotnetclitoolreference) - * **Remove DotNetCliToolReference** - * Removes a `<DotNetCliToolReference>` element from .csproj files. Use `*` to remove every CLI tool reference. -* [OpenRewrite.CSharp.Recipes.RemoveMSBuildProperty](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/removemsbuildproperty) - * **Remove MSBuild property** - * Removes an MSBuild property element (e.g. `<RuntimeFrameworkVersion>`) from `<PropertyGroup>` in .csproj files. -* [OpenRewrite.CSharp.Recipes.RemoveNuGetPackageReference](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/removenugetpackagereference) - * **Remove NuGet package reference** - * Removes a `<PackageReference>` element from .csproj files. -* [OpenRewrite.CSharp.Recipes.UpgradeNuGetPackageVersion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/csharp/recipes/upgradenugetpackageversion) - * **Upgrade NuGet package version** - * Upgrades the version of a NuGet `<PackageReference>` or `<PackageVersion>` in .csproj and Directory.Packages.props files. Handles property references by updating the property value instead of the version attribute. Uses NuGet.Versioning for correct version semantics. * [OpenRewrite.Recipes.CSharp.CodeQuality.CodeQuality](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/codequality/codequality-recipe) * **Code quality** * All C# code quality recipes, organized by category. @@ -1260,12 +1233,6 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [OpenRewrite.Recipes.CSharp.CodeQuality.Style.ValueTypeIsNeverEqualToNull](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/codequality/style/valuetypeisneverequaltonull) * **Value type is never equal to null** * Replace null with default in comparisons of value types. -* [OpenRewrite.Xml.Recipes.ChangeXmlAttribute](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/xml/recipes/changexmlattribute) - * **Change XML attribute value** - * Changes the value of attributes matching AttrName to NewValue. -* [OpenRewrite.Xml.Recipes.ChangeXmlCharData](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/xml/recipes/changexmlchardata) - * **Change XML CharData text** - * Replaces occurrences of OldText with NewText in XML CharData nodes. ### recipes-kotlin @@ -4303,468 +4270,6 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * **Modernize Kotlin test code** * Find Kotlin-specific test patterns: mockito-kotlin usage where mockk would be idiomatic, deprecated `runBlocking` / `TestCoroutineDispatcher` patterns, Kotest assertion migration candidates, empty / assertion-less / many-assertion test bodies, snake_case test names, and Hamcrest call sites that fluent assertion libraries (AssertJ, Kotest) replace cleanly. Each match is a `SearchResult` for review — nothing is rewritten automatically. For bulk JUnit 4 → JUnit 5 annotation/assertion migration, apply `JUnit4to5Migration` from `rewrite-testing-frameworks`. -### recipes-migrate-dotnet - -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AddNuGetPackageReferenceIfTypeUsed](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/addnugetpackagereferenceiftypeused) - * **Add NuGet package reference when namespace is used** - * Adds a `<PackageReference>` to a .csproj only when a C# source file in the same project directory has a `using` directive that starts with the trigger namespace prefix. Useful for paired add-package-when-type-is-used migrations. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNet.UpgradeAspNetFrameworkToCore](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnet/upgradeaspnetframeworktocore) - * **Migrate ASP.NET Framework to ASP.NET Core** - * Migrate ASP.NET Framework (System.Web.Mvc, System.Web.Http) types to their ASP.NET Core equivalents. Based on the .NET Upgrade Assistant's UA0002 and UA0010 diagnostics. See https://learn.microsoft.com/en-us/aspnet/core/migration/proper-to-2x. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.FindBuildWebHost](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/findbuildwebhost) - * **Find BuildWebHost method** - * Flags `BuildWebHost` method declarations that should be renamed to `CreateWebHostBuilder` and refactored for ASP.NET Core 2.1. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.FindIAuthenticationManager](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/findiauthenticationmanager) - * **Find IAuthenticationManager usage** - * Flags references to `IAuthenticationManager` which was removed in ASP.NET Core 2.0. Use `HttpContext` extension methods from `Microsoft.AspNetCore.Authentication` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.FindLoggerFactoryAddProvider](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/findloggerfactoryaddprovider) - * **Find ILoggerFactory.Add*() calls** - * Flags `ILoggerFactory.AddConsole()`, `AddDebug()`, and similar extension methods. In ASP.NET Core 2.2+, logging should be configured via `ConfigureLogging` in the host builder. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.FindSetCompatibilityVersion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/findsetcompatibilityversion) - * **Find SetCompatibilityVersion() calls** - * Flags `SetCompatibilityVersion` calls. This method is a no-op in ASP.NET Core 3.0+ and should be removed during migration. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.FindUseKestrelWithConfig](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/findusekestrelwithconfig) - * **Find UseKestrel() with configuration** - * Flags `UseKestrel` calls with configuration lambdas that should be replaced with `ConfigureKestrel` to avoid conflicts with the IIS in-process hosting model. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.UpgradeToAspNetCore20](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/upgradetoaspnetcore20) - * **Migrate to ASP.NET Core 2.0** - * Migrate ASP.NET Core 1.x projects to ASP.NET Core 2.0, applying authentication and Identity changes. See https://learn.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.UpgradeToAspNetCore21](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/upgradetoaspnetcore21) - * **Migrate to ASP.NET Core 2.1** - * Migrate ASP.NET Core 2.0 projects to ASP.NET Core 2.1, including host builder changes and obsolete API replacements. See https://learn.microsoft.com/en-us/aspnet/core/migration/20-to-21. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.UpgradeToAspNetCore22](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/upgradetoaspnetcore22) - * **Migrate to ASP.NET Core 2.2** - * Migrate ASP.NET Core 2.1 projects to ASP.NET Core 2.2, including Kestrel configuration and logging changes. See https://learn.microsoft.com/en-us/aspnet/core/migration/21-to-22. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.UseGetExternalAuthenticationSchemesAsync](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/usegetexternalauthenticationschemesasync) - * **Use GetExternalAuthenticationSchemesAsync()** - * Replace `GetExternalAuthenticationSchemes()` with `GetExternalAuthenticationSchemesAsync()`. The synchronous method was removed in ASP.NET Core 2.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.UseHttpContextAuthExtensions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/usehttpcontextauthextensions) - * **Use HttpContext authentication extensions** - * Replace `HttpContext.Authentication.Method(...)` calls with `HttpContext.Method(...)` extension methods. The `IAuthenticationManager` interface was removed in ASP.NET Core 2.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore2.UseUseAuthentication](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore2/useuseauthentication) - * **Replace UseIdentity() with UseAuthentication()** - * Replace `app.UseIdentity()` with `app.UseAuthentication()`. The `UseIdentity` method was removed in ASP.NET Core 2.0 in favor of `UseAuthentication`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindAddMvc](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findaddmvc) - * **Find AddMvc() calls** - * Flags `AddMvc()` calls that should be replaced with more specific service registrations (`AddControllers`, `AddControllersWithViews`, or `AddRazorPages`) in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindIApplicationLifetime](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findiapplicationlifetime) - * **Find IApplicationLifetime usage** - * Flags usages of `IApplicationLifetime` which should be replaced with `IHostApplicationLifetime` in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindIHostingEnvironment](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findihostingenvironment) - * **Find IHostingEnvironment usage** - * Flags usages of `IHostingEnvironment` which should be replaced with `IWebHostEnvironment` in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindNewLoggerFactory](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findnewloggerfactory) - * **Find new LoggerFactory() calls** - * Flags `new LoggerFactory()` calls that should be replaced with `LoggerFactory.Create(builder => ...)` in .NET Core 3.0+. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindNewtonsoftJsonUsage](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findnewtonsoftjsonusage) - * **Find Newtonsoft.Json usage in ASP.NET Core** - * Flags `JsonConvert` and other `Newtonsoft.Json` usage. ASP.NET Core 3.0 uses `System.Text.Json` by default. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindUseMvcOrUseSignalR](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findusemvcorusesignalr) - * **Find UseMvc()/UseSignalR() calls** - * Flags `UseMvc()` and `UseSignalR()` calls that should be replaced with endpoint routing (`UseRouting()` + `UseEndpoints()`) in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.FindWebHostBuilder](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/findwebhostbuilder) - * **Find WebHostBuilder usage** - * Flags `WebHostBuilder` and `WebHost.CreateDefaultBuilder` usage that should migrate to the Generic Host pattern in ASP.NET Core 3.0+. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.AspNetCore3.UpgradeToAspNetCore30](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/aspnetcore3/upgradetoaspnetcore30) - * **Migrate to ASP.NET Core 3.0** - * Migrate ASP.NET Core 2.2 projects to ASP.NET Core 3.0, including endpoint routing, Generic Host, and System.Text.Json changes. See https://learn.microsoft.com/en-us/aspnet/core/migration/22-to-30. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeMethodName](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/changemethodname) - * **Change method name** - * Rename a method. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/changetype) - * **Change type** - * Change a type reference to another type. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.DeleteMethodArgument](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/deletemethodargument) - * **Delete method argument** - * Delete an argument from method invocations. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.FindCsprojMarker](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/findcsprojmarker) - * **Find csproj MSBuildProject marker presence** - * Diagnostic recipe: tags csproj files based on MSBuildProject marker presence. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindActionContextAccessorObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findactioncontextaccessorobsolete) - * **Find obsolete `IActionContextAccessor`/`ActionContextAccessor` (ASPDEPR006)** - * Finds usages of `IActionContextAccessor` and `ActionContextAccessor` which are obsolete in .NET 10. Use `IHttpContextAccessor` and `HttpContext.GetEndpoint()` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindActivitySampling](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findactivitysampling) - * **Find `ActivitySamplingResult.PropagationData` behavior change** - * Finds usages of `ActivitySamplingResult.PropagationData` which has changed behavior in .NET 10. Activities with a recorded parent and PropagationData sampling no longer set `Activity.Recorded = true`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindBackgroundServiceExecuteAsync](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findbackgroundserviceexecuteasync) - * **Find `BackgroundService.ExecuteAsync` behavior change** - * Finds methods that override `ExecuteAsync` from `BackgroundService`. In .NET 10, the entire method runs on a background thread; synchronous code before the first `await` no longer blocks host startup. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindBufferedStreamWriteByte](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findbufferedstreamwritebyte) - * **Find `BufferedStream.WriteByte` implicit flush behavior change** - * Finds calls to `BufferedStream.WriteByte()` which no longer performs an implicit flush when the internal buffer is full in .NET 10. Call `Flush()` explicitly if needed. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindClipboardGetData](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findclipboardgetdata) - * **Find obsolete `Clipboard.GetData` calls (WFDEV005)** - * Finds calls to `Clipboard.GetData(string)`. In .NET 10, this method is obsolete (WFDEV005). Use `Clipboard.TryGetData` methods instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindDistributedContextPropagator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/finddistributedcontextpropagator) - * **Find `DistributedContextPropagator` default propagator change** - * Finds usages of `DistributedContextPropagator.Current` and `DistributedContextPropagator.CreateDefaultPropagator()` which now default to W3C format in .NET 10. The 'baggage' header is used instead of 'Correlation-Context'. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindDllImportSearchPath](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/finddllimportsearchpath) - * **Find `DllImportSearchPath.AssemblyDirectory` behavior change** - * Finds usages of `DllImportSearchPath.AssemblyDirectory` which has changed behavior in .NET 10. Specifying only `AssemblyDirectory` no longer falls back to OS default search paths. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindDriveInfoDriveFormat](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/finddriveinfodriveformat) - * **Find `DriveInfo.DriveFormat` behavior change** - * Finds usages of `DriveInfo.DriveFormat` which returns Linux kernel filesystem type strings instead of mapped names in .NET 10. Verify that comparisons match the new format. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindFormOnClosingObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findformonclosingobsolete) - * **Find obsolete `Form.OnClosing`/`OnClosed` usage (WFDEV004)** - * Finds usage of `Form.OnClosing`, `Form.OnClosed`, and the `Closing`/`Closed` events. In .NET 10, these are obsolete (WFDEV004). Use `OnFormClosing`/`OnFormClosed` and `FormClosing`/`FormClosed` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindGnuTarPaxTarEntry](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findgnutarpaxtarentry) - * **Find `GnuTarEntry`/`PaxTarEntry` default timestamp change** - * Finds `new GnuTarEntry(...)` and `new PaxTarEntry(...)` constructor calls. In .NET 10, these no longer set atime and ctime by default. Set `AccessTime`/`ChangeTime` explicitly if needed. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindIpNetworkObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findipnetworkobsolete) - * **Find obsolete `IPNetwork`/`KnownNetworks` (ASPDEPR005)** - * Finds usages of `Microsoft.AspNetCore.HttpOverrides.IPNetwork` and `ForwardedHeadersOptions.KnownNetworks` which are obsolete in .NET 10. Use `System.Net.IPNetwork` and `KnownIPNetworks` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindKeyedServiceAnyKey](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findkeyedserviceanykey) - * **Find `KeyedService.AnyKey` behavior change** - * Finds usages of `KeyedService.AnyKey` which has changed behavior in .NET 10. `GetKeyedService(AnyKey)` now throws `InvalidOperationException` and `GetKeyedServices(AnyKey)` no longer returns AnyKey registrations. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindMakeGenericSignatureType](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findmakegenericsignaturetype) - * **Find `Type.MakeGenericSignatureType` validation change** - * Finds calls to `Type.MakeGenericSignatureType()` which now validates that the first argument is a generic type definition in .NET 10. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindQueryableMaxByMinByObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findqueryablemaxbyminbyobsolete) - * **Find obsolete `Queryable.MaxBy`/`MinBy` with `IComparer<TSource>` (SYSLIB0061)** - * Finds `Queryable.MaxBy` and `Queryable.MinBy` overloads taking `IComparer<TSource>` which are obsolete in .NET 10. Use the overloads taking `IComparer<TKey>` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindRazorRuntimeCompilationObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findrazorruntimecompilationobsolete) - * **Find obsolete `AddRazorRuntimeCompilation` calls (ASPDEPR003)** - * Finds calls to `AddRazorRuntimeCompilation` which is obsolete in .NET 10. Use Hot Reload instead for development scenarios. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindRfc2898DeriveBytesObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findrfc2898derivebytesobsolete) - * **Find obsolete `Rfc2898DeriveBytes` constructors (SYSLIB0060)** - * Finds `new Rfc2898DeriveBytes(...)` constructor calls which are obsolete in .NET 10. Use the static `Rfc2898DeriveBytes.Pbkdf2()` method instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindSslAuthEnumTypes](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findsslauthenumtypes) - * **Find obsolete SSL authentication enum types** - * Finds usage of `ExchangeAlgorithmType`, `CipherAlgorithmType`, and `HashAlgorithmType` from `System.Security.Authentication`. These enum types are obsolete in .NET 10 (SYSLIB0058). Use `SslStream.NegotiatedCipherSuite` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindSslStreamObsoleteProperties](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findsslstreamobsoleteproperties) - * **Find obsolete `SslStream` cipher properties (SYSLIB0058)** - * Finds usages of `SslStream.KeyExchangeAlgorithm`, `KeyExchangeStrength`, `CipherAlgorithm`, `CipherStrength`, `HashAlgorithm`, and `HashStrength` which are obsolete in .NET 10. Use `SslStream.NegotiatedCipherSuite` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindSystemDrawingExceptionChange](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findsystemdrawingexceptionchange) - * **Find `catch (OutOfMemoryException)` that may need `ExternalException`** - * In .NET 10, System.Drawing GDI+ errors now throw `ExternalException` instead of `OutOfMemoryException`. This recipe finds catch blocks that catch `OutOfMemoryException` which may need to also catch `ExternalException`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindSystemEventsThreadShutdownObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findsystemeventsthreadshutdownobsolete) - * **Find obsolete `SystemEvents.EventsThreadShutdown` (SYSLIB0059)** - * Finds usages of `SystemEvents.EventsThreadShutdown` which is obsolete in .NET 10. Use `AppDomain.ProcessExit` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindWebHostBuilderObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findwebhostbuilderobsolete) - * **Find obsolete `WebHostBuilder`/`IWebHost`/`WebHost` usage (ASPDEPR004/ASPDEPR008)** - * Finds usages of `WebHostBuilder`, `IWebHost`, and `WebHost` which are obsolete in .NET 10. Migrate to `HostBuilder` or `WebApplicationBuilder` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindWinFormsObsoleteApis](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findwinformsobsoleteapis) - * **Find obsolete Windows Forms APIs (WFDEV004/005/006)** - * Finds usages of Windows Forms APIs that are obsolete in .NET 10, including `Form.OnClosing/OnClosed` (WFDEV004), `Clipboard.GetData` (WFDEV005), and legacy controls like `ContextMenu`, `DataGrid`, `MainMenu` (WFDEV006). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindWithOpenApiDeprecated](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findwithopenapideprecated) - * **Find deprecated `WithOpenApi` calls (ASPDEPR002)** - * Finds calls to `.WithOpenApi()` which is deprecated in .NET 10. Remove the call or use `AddOpenApiOperationTransformer` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindX500DistinguishedNameValidation](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findx500distinguishednamevalidation) - * **Find `X500DistinguishedName` string constructor stricter validation** - * Finds `new X500DistinguishedName(string, ...)` constructor calls which have stricter validation in .NET 10. Non-Windows environments may reject previously accepted values. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FindXsltSettingsEnableScriptObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/findxsltsettingsenablescriptobsolete) - * **Find obsolete `XsltSettings.EnableScript` (SYSLIB0062)** - * Finds usages of `XsltSettings.EnableScript` which is obsolete in .NET 10. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.FormOnClosingRename](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/formonclosingrename) - * **Rename `Form.OnClosing/OnClosed` to `OnFormClosing/OnFormClosed` (WFDEV004)** - * Renames `Form.OnClosing` to `OnFormClosing` and `Form.OnClosed` to `OnFormClosed` for .NET 10 compatibility. Parameter type changes (`CancelEventArgs` → `FormClosingEventArgs`, `EventArgs` → `FormClosedEventArgs`) must be updated manually. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.InsertAdjacentElementOrientParameterRename](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/insertadjacentelementorientparameterrename) - * **Rename `orient` parameter to `orientation` in `HtmlElement.InsertAdjacentElement`** - * The `orient` parameter of `HtmlElement.InsertAdjacentElement` was renamed to `orientation` in .NET 10. This recipe updates named arguments in method calls to use the new parameter name. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.KnownNetworksRename](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/knownnetworksrename) - * **Rename `KnownNetworks` to `KnownIPNetworks` (ASPDEPR005)** - * Renames `ForwardedHeadersOptions.KnownNetworks` to `KnownIPNetworks` for .NET 10 compatibility. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.MlDsaSlhDsaSecretKeyToPrivateKey](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/mldsaslhdsasecretkeytoprivatekey) - * **Rename MLDsa/SlhDsa `SecretKey` members to `PrivateKey`** - * Renames `SecretKey` to `PrivateKey` in MLDsa and SlhDsa post-quantum cryptography APIs to align with .NET 10 naming conventions. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.RazorRuntimeCompilationObsolete](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/razorruntimecompilationobsolete) - * **Remove obsolete `AddRazorRuntimeCompilation` calls (ASPDEPR003)** - * Removes `AddRazorRuntimeCompilation()` calls which are obsolete in .NET 10. Use Hot Reload instead for development scenarios. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.UpgradeToDotNet10](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/upgradetodotnet10) - * **Migrate to .NET 10** - * Migrate C# projects to .NET 10, applying necessary API changes. Includes all .NET 9 (and earlier) migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/10.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net10.WithOpenApiDeprecated](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net10/withopenapideprecated) - * **Remove deprecated `WithOpenApi` calls (ASPDEPR002)** - * Removes `.WithOpenApi()` calls which are deprecated in .NET 10. The call is removed from fluent method chains. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindCompactOnMemoryPressure](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findcompactonmemorypressure) - * **Find `CompactOnMemoryPressure` usage (removed in ASP.NET Core 3.0)** - * Finds usages of `CompactOnMemoryPressure` which was removed from `MemoryCacheOptions` in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindConnectionAdapter](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findconnectionadapter) - * **Find `IConnectionAdapter` usage (removed in ASP.NET Core 3.0)** - * Finds usages of `IConnectionAdapter` which was removed from Kestrel in ASP.NET Core 3.0. Use Connection Middleware instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindHttpContextAuthentication](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findhttpcontextauthentication) - * **Find `HttpContext.Authentication` usage (removed in ASP.NET Core 3.0)** - * Finds usages of `HttpContext.Authentication` which was removed in ASP.NET Core 3.0. Use dependency injection to get `IAuthenticationService` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindNewtonsoftJson](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findnewtonsoftjson) - * **Find Newtonsoft.Json usage** - * Finds usages of Newtonsoft.Json types (`JObject`, `JArray`, `JToken`, `JsonConvert`) that should be migrated to `System.Text.Json` or explicitly preserved via `Microsoft.AspNetCore.Mvc.NewtonsoftJson` in ASP.NET Core 3.0+. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindObsoleteLocalizationApis](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findobsoletelocalizationapis) - * **Find obsolete localization APIs (ASP.NET Core 3.0)** - * Finds usages of `ResourceManagerWithCultureStringLocalizer` and `WithCulture()` which are obsolete in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindSpaServices](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findspaservices) - * **Find SpaServices/NodeServices usage (obsolete in ASP.NET Core 3.0)** - * Finds usages of `SpaServices` and `NodeServices` which are obsolete in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindSynchronousIO](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findsynchronousio) - * **Find synchronous IO usage (disabled in ASP.NET Core 3.0)** - * Finds references to `AllowSynchronousIO` which indicates synchronous IO usage that is disabled by default in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindUseMvc](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findusemvc) - * **Find `UseMvc`/`AddMvc` usage (replaced in ASP.NET Core 3.0)** - * Finds usages of `app.UseMvc()`, `app.UseMvcWithDefaultRoute()`, and `services.AddMvc()` which should be migrated to endpoint routing and more specific service registration in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindWebApiCompatShim](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findwebapicompatshim) - * **Find Web API compatibility shim usage (removed in ASP.NET Core 3.0)** - * Finds usages of `ApiController`, `HttpResponseMessage`, and other types from `Microsoft.AspNetCore.Mvc.WebApiCompatShim` which was removed in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.FindWebHostBuilder](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/findwebhostbuilder) - * **Find `WebHostBuilder`/`WebHost.CreateDefaultBuilder` usage (replaced in ASP.NET Core 3.0)** - * Finds usages of `WebHost.CreateDefaultBuilder()` and `new WebHostBuilder()` which should be migrated to `Host.CreateDefaultBuilder()` with `ConfigureWebHostDefaults()` in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.UpgradeToDotNet3_0](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/upgradetodotnet3_0) - * **Migrate to .NET Core 3.0** - * Migrate C# projects from .NET Core 2.x to .NET Core 3.0, applying necessary API changes for removed and replaced types. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.UseApiControllerBase](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/useapicontrollerbase) - * **Migrate ApiController to ControllerBase** - * Replace `ApiController` base class (from the removed WebApiCompatShim) with `ControllerBase` and add the `[ApiController]` attribute. The shim was removed in ASP.NET Core 3.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_0.UsePlatformAbstractionsReplacement](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_0/useplatformabstractionsreplacement) - * **Replace `PlatformServices` with `AppContext`** - * Replaces `Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationBasePath` with `System.AppContext.BaseDirectory`. The PlatformAbstractions package was removed in .NET Core 3.0. Also removes the obsolete using directive. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_1.FindSameSiteNone](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_1/findsamesitenone) - * **Find `SameSiteMode.None` usage (behavior changed in .NET Core 3.1)** - * Finds usages of `SameSiteMode.None` which changed behavior in .NET Core 3.1 due to Chrome 80 SameSite cookie changes. Apps using remote authentication may need browser sniffing. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net3_1.UpgradeToDotNet3_1](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net3_1/upgradetodotnet3_1) - * **Migrate to .NET Core 3.1** - * Migrate C# projects from .NET Core 3.0 to .NET Core 3.1. Includes all .NET Core 3.0 migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/3.1. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.FindCodeAccessSecurity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net5/findcodeaccesssecurity) - * **Find Code Access Security usage (obsolete in .NET 5)** - * Finds usages of Code Access Security types (`SecurityPermission`, `PermissionSet`, etc.) which are obsolete in .NET 5+. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.FindPrincipalPermissionAttribute](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net5/findprincipalpermissionattribute) - * **Find `PrincipalPermissionAttribute` usage (SYSLIB0003)** - * Finds usages of `PrincipalPermissionAttribute` which is obsolete in .NET 5+ (SYSLIB0003) and throws `NotSupportedException` at runtime. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.FindUtf7Encoding](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net5/findutf7encoding) - * **Find `Encoding.UTF7` usage (SYSLIB0001)** - * Finds usages of `Encoding.UTF7` and `UTF7Encoding` which are obsolete in .NET 5+ (SYSLIB0001). UTF-7 is insecure. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.FindWinHttpHandler](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net5/findwinhttphandler) - * **Find `WinHttpHandler` usage (removed in .NET 5)** - * Finds usages of `WinHttpHandler` which was removed from the .NET 5 runtime. Install the `System.Net.Http.WinHttpHandler` NuGet package explicitly. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.FindWinRTInterop](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net5/findwinrtinterop) - * **Find WinRT interop usage (removed in .NET 5)** - * Finds usages of WinRT interop types (`WindowsRuntimeType`, `WindowsRuntimeMarshal`, etc.) which were removed in .NET 5. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.UpgradeToDotNet5](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net5/upgradetodotnet5) - * **Migrate to .NET 5** - * Migrate C# projects from .NET Core 3.1 to .NET 5.0. Includes all .NET Core 3.0 and 3.1 migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/5.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindAssemblyCodeBase](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/findassemblycodebase) - * **Find `Assembly.CodeBase`/`EscapedCodeBase` usage (SYSLIB0012)** - * Finds usages of `Assembly.CodeBase` and `Assembly.EscapedCodeBase` which are obsolete (SYSLIB0012). Use `Assembly.Location` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindIgnoreNullValues](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/findignorenullvalues) - * **Find `JsonSerializerOptions.IgnoreNullValues` usage (SYSLIB0020)** - * Finds usages of `JsonSerializerOptions.IgnoreNullValues` which is obsolete in .NET 6 (SYSLIB0020). Use `DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindThreadAbort](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/findthreadabort) - * **Find `Thread.Abort` usage (SYSLIB0006)** - * Finds calls to `Thread.Abort()` which throws `PlatformNotSupportedException` in .NET 6+ (SYSLIB0006). Use `CancellationToken` for cooperative cancellation instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindWebRequest](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/findwebrequest) - * **Find `WebRequest`/`HttpWebRequest`/`WebClient` usage (SYSLIB0014)** - * Finds usages of `WebRequest`, `HttpWebRequest`, and `WebClient` which are obsolete in .NET 6 (SYSLIB0014). Use `HttpClient` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindX509PrivateKey](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/findx509privatekey) - * **Find `X509Certificate2.PrivateKey` usage (SYSLIB0028)** - * Finds usages of `X509Certificate2.PrivateKey` which is obsolete (SYSLIB0028). Use `GetRSAPrivateKey()`, `GetECDsaPrivateKey()`, or the appropriate algorithm-specific method instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UpgradeToDotNet6](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/upgradetodotnet6) - * **Migrate to .NET 6** - * Migrate C# projects to .NET 6, applying necessary API changes for obsoleted cryptographic types and other breaking changes. Includes all .NET Core 3.0, 3.1, and .NET 5 migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/6.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseCryptoFactoryMethods](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/usecryptofactorymethods) - * **Use factory method for abstract cryptographic types** - * Replace `new AbstractCryptoType()` with `AbstractCryptoType.Create()` for abstract cryptographic types like `SHA256`, `Aes`, `RandomNumberGenerator`, etc. These types are abstract and cannot be instantiated directly; callers must use the static `Create()` factory method. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseEnvironmentCurrentManagedThreadId](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/useenvironmentcurrentmanagedthreadid) - * **Use Environment.CurrentManagedThreadId** - * Replace `Thread.CurrentThread.ManagedThreadId` with `Environment.CurrentManagedThreadId` (CA1840). Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseEnvironmentProcessId](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/useenvironmentprocessid) - * **Use Environment.ProcessId** - * Replace `Process.GetCurrentProcess().Id` with `Environment.ProcessId` (CA1837). Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseEnvironmentProcessPath](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/useenvironmentprocesspath) - * **Use Environment.ProcessPath** - * Replace `Process.GetCurrentProcess().MainModule.FileName` with `Environment.ProcessPath` (CA1839). Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseLinqDistinctBy](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/uselinqdistinctby) - * **Use LINQ DistinctBy()** - * Replace `collection.GroupBy(selector).Select(g => g.First())` with `collection.DistinctBy(selector)`. Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseLinqMaxMinBy](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/uselinqmaxminby) - * **Use LINQ MaxBy() and MinBy()** - * Replace `collection.OrderByDescending(selector).First()` with `collection.MaxBy(selector)` and `collection.OrderBy(selector).First()` with `collection.MinBy(selector)`. Also handles `.Last()` variants (OrderBy().Last() → MaxBy, OrderByDescending().Last() → MinBy). Note: MinBy/MaxBy return default for empty reference-type sequences instead of throwing. Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseRandomShared](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/userandomshared) - * **Use Random.Shared** - * Replace `new Random().Method(...)` with `Random.Shared.Method(...)`. Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseStringContainsChar](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/usestringcontainschar) - * **Use string.Contains(char) overload** - * Finds calls to `string.Contains("x")` with a single-character string literal that could use the `string.Contains('x')` overload for better performance. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseStringStartsEndsWithChar](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/usestringstartsendswithchar) - * **Use string.StartsWith(char)/EndsWith(char) overload** - * Finds calls to `string.StartsWith("x")` and `string.EndsWith("x")` with a single-character string literal that could use the char overload for better performance. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseThrowIfNull](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net6/usethrowifnull) - * **Use ArgumentNullException.ThrowIfNull()** - * Replace `if (x == null) throw new ArgumentNullException(nameof(x))` guard clauses with `ArgumentNullException.ThrowIfNull(x)` (CA1510). Handles `== null`, `is null`, reversed `null ==`, string literal param names, and braced then-blocks. Available since .NET 6. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.FindObsoleteSslProtocols](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/findobsoletesslprotocols) - * **Find obsolete `SslProtocols.Tls`/`Tls11` usage (SYSLIB0039)** - * Finds usages of `SslProtocols.Tls` and `SslProtocols.Tls11` which are obsolete in .NET 7 (SYSLIB0039). Use `SslProtocols.Tls12`, `SslProtocols.Tls13`, or `SslProtocols.None` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.FindRfc2898InsecureCtors](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/findrfc2898insecurectors) - * **Find insecure `Rfc2898DeriveBytes` constructors (SYSLIB0041)** - * Finds `Rfc2898DeriveBytes` constructor calls that use default SHA1 or low iteration counts, which are obsolete in .NET 7 (SYSLIB0041). Specify `HashAlgorithmName` and at least 600,000 iterations. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.UpgradeToDotNet7](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/upgradetodotnet7) - * **Migrate to .NET 7** - * Migrate C# projects to .NET 7, applying necessary API changes. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/7.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.UseLinqOrder](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/uselinqorder) - * **Use LINQ Order() and OrderDescending()** - * Replace `collection.OrderBy(x => x)` with `collection.Order()` and `collection.OrderByDescending(x => x)` with `collection.OrderDescending()`. Available since .NET 7. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.UseThrowIfNegative](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/usethrowifnegative) - * **Use ArgumentOutOfRangeException.ThrowIfNegative()** - * Replace `if (value < 0) throw new ArgumentOutOfRangeException(nameof(value))` guard clauses with `ArgumentOutOfRangeException.ThrowIfNegative(value)`. Also handles reversed `0 > value`. Available since .NET 7. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.UseThrowIfNegativeOrZero](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/usethrowifnegativeorzero) - * **Use ArgumentOutOfRangeException.ThrowIfNegativeOrZero()** - * Replace `if (value <= 0) throw new ArgumentOutOfRangeException(nameof(value))` guard clauses with `ArgumentOutOfRangeException.ThrowIfNegativeOrZero(value)`. Also handles reversed `0 >= value`. Available since .NET 7. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net7.UseThrowIfNullOrEmpty](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net7/usethrowifnullorempty) - * **Use ArgumentException.ThrowIfNullOrEmpty()** - * Replace `if (string.IsNullOrEmpty(s)) throw new ArgumentException("...", nameof(s))` guard clauses with `ArgumentException.ThrowIfNullOrEmpty(s)`. Available since .NET 7. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindAddContext](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findaddcontext) - * **Find `JsonSerializerOptions.AddContext` usage (SYSLIB0049)** - * Finds calls to `JsonSerializerOptions.AddContext<T>()` which is obsolete in .NET 8 (SYSLIB0049). Use `TypeInfoResolverChain` or `TypeInfoResolver` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindAesGcmOldConstructor](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findaesgcmoldconstructor) - * **Find `AesGcm` constructor without tag size (SYSLIB0053)** - * Finds `new AesGcm(key)` constructor calls without an explicit tag size parameter. In .NET 8, the single-argument constructor is obsolete (SYSLIB0053). Use `new AesGcm(key, tagSizeInBytes)` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindFormatterBasedSerialization](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findformatterbasedserialization) - * **Find formatter-based serialization types (SYSLIB0050/0051)** - * Finds usage of formatter-based serialization types (`FormatterConverter`, `IFormatter`, `ObjectIDGenerator`, `ObjectManager`, `SurrogateSelector`, `SerializationInfo`, `StreamingContext`). These are obsolete in .NET 8 (SYSLIB0050/0051). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindFrozenCollection](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findfrozencollection) - * **Find ToImmutable*() that could use Frozen collections** - * Finds usages of `ToImmutableDictionary()` and `ToImmutableHashSet()`. In .NET 8+, `ToFrozenDictionary()` and `ToFrozenSet()` provide better read performance. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindRegexCompileToAssembly](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findregexcompiletoassembly) - * **Find `Regex.CompileToAssembly` usage (SYSLIB0052)** - * Finds usage of `Regex.CompileToAssembly()` and `RegexCompilationInfo`. These are obsolete in .NET 8 (SYSLIB0052). Use the Regex source generator instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindSerializationConstructors](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findserializationconstructors) - * **Find legacy serialization constructors (SYSLIB0051)** - * Finds legacy serialization constructors `.ctor(SerializationInfo, StreamingContext)` which are obsolete in .NET 8 (SYSLIB0051). The `ISerializable` pattern is no longer recommended. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.FindTimeAbstraction](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/findtimeabstraction) - * **Find DateTime.Now/UtcNow usage (TimeProvider in .NET 8)** - * Finds usages of `DateTime.Now`, `DateTime.UtcNow`, `DateTimeOffset.Now`, and `DateTimeOffset.UtcNow`. In .NET 8+, `TimeProvider` is the recommended abstraction for time. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UpgradeToDotNet8](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/upgradetodotnet8) - * **Migrate to .NET 8** - * Migrate C# projects to .NET 8, applying necessary API changes. Includes all .NET 7 migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/8.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseThrowIfGreaterThan](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/usethrowifgreaterthan) - * **Use ArgumentOutOfRangeException.ThrowIfGreaterThan()** - * Replace `if (value > other) throw new ArgumentOutOfRangeException(nameof(value))` guard clauses with `ArgumentOutOfRangeException.ThrowIfGreaterThan(value, other)`. Also handles reversed `other < value` and `>=`/`ThrowIfGreaterThanOrEqual`. Available since .NET 8. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseThrowIfLessThan](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/usethrowiflessthan) - * **Use ArgumentOutOfRangeException.ThrowIfLessThan()** - * Replace `if (value < other) throw new ArgumentOutOfRangeException(nameof(value))` guard clauses with `ArgumentOutOfRangeException.ThrowIfLessThan(value, other)`. Also handles reversed `other > value` and `<=`/`ThrowIfLessThanOrEqual`. Available since .NET 8. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseThrowIfNullOrWhiteSpace](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/usethrowifnullorwhitespace) - * **Use ArgumentException.ThrowIfNullOrWhiteSpace()** - * Replace `if (string.IsNullOrWhiteSpace(s)) throw new ArgumentException("...", nameof(s))` guard clauses with `ArgumentException.ThrowIfNullOrWhiteSpace(s)`. Available since .NET 8. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseThrowIfZero](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/usethrowifzero) - * **Use ArgumentOutOfRangeException.ThrowIfZero()** - * Replace `if (value == 0) throw new ArgumentOutOfRangeException(nameof(value))` guard clauses with `ArgumentOutOfRangeException.ThrowIfZero(value)`. Also handles reversed `0 == value`. Available since .NET 8. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseTimeProvider](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net8/usetimeprovider) - * **Use TimeProvider instead of DateTime/DateTimeOffset static properties** - * Replace `DateTime.UtcNow`, `DateTime.Now`, `DateTimeOffset.UtcNow`, and `DateTimeOffset.Now` with `TimeProvider.System.GetUtcNow()`/`GetLocalNow()` equivalents. TimeProvider enables testability and consistent time sources. Available since .NET 8. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindAsyncEnumerableLinqAmbiguity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findasyncenumerablelinqambiguity) - * **Find LINQ ambiguities introduced by .NET 9 `IAsyncEnumerable` extensions** - * .NET 9 added LINQ extension methods on `IAsyncEnumerable<T>`. Types implementing both `IQueryable<T>` and `IAsyncEnumerable<T>` (notably EF Core `DbSet<T>`) now produce ambiguous `Where`/`Select`/`FirstOrDefault`/etc. calls. Flags such calls for manual disambiguation (typically by inserting `.AsQueryable()`). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindAuthenticationManager](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findauthenticationmanager) - * **Find `AuthenticationManager` usage (SYSLIB0009)** - * Finds usages of `AuthenticationManager` which is not supported in .NET 9 (SYSLIB0009). Methods will no-op or throw `PlatformNotSupportedException`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindBinaryFormatter](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findbinaryformatter) - * **Find `BinaryFormatter` usage (removed in .NET 9)** - * Finds usages of `BinaryFormatter` which always throws `NotSupportedException` in .NET 9. Migrate to a different serializer such as `System.Text.Json`, `XmlSerializer`, or `DataContractSerializer`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindBinaryReaderReadString](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findbinaryreaderreadstring) - * **Find `BinaryReader.ReadString` behavior change** - * Finds calls to `BinaryReader.ReadString()` which now returns the Unicode replacement character (\uFFFD) for malformed UTF-8 byte sequences in .NET 9, instead of the previous behavior. Verify your code handles the replacement character correctly. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindDistributedCache](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/finddistributedcache) - * **Find IDistributedCache usage (HybridCache in .NET 9)** - * Finds usages of `IDistributedCache`. In .NET 9, `HybridCache` is the recommended replacement with L1/L2 caching, stampede protection, and tag-based invalidation. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindEnumConverter](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findenumconverter) - * **Find `EnumConverter` constructor validation change** - * Finds `new EnumConverter()` constructor calls. In .NET 9, `EnumConverter` validates that the registered type is actually an enum and throws `ArgumentException` if not. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindExecuteUpdateSync](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findexecuteupdatesync) - * **Find synchronous ExecuteUpdate/ExecuteDelete (EF Core 9)** - * Finds usages of synchronous `ExecuteUpdate()` and `ExecuteDelete()` which were removed in EF Core 9. Use `ExecuteUpdateAsync`/`ExecuteDeleteAsync` instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindHttpClientHandlerCast](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findhttpclienthandlercast) - * **Find `HttpClientHandler` usage (HttpClientFactory default change)** - * Finds usages of `HttpClientHandler` which may break when `HttpClientFactory` switches its default handler to `SocketsHttpHandler` in .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindHttpListenerRequestUserAgent](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findhttplistenerrequestuseragent) - * **Find `HttpListenerRequest.UserAgent` nullable change** - * Finds accesses to `HttpListenerRequest.UserAgent` which changed from `string` to `string?` in .NET 9. Code that assumes `UserAgent` is non-null may throw `NullReferenceException`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindImplicitAuthenticationDefault](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findimplicitauthenticationdefault) - * **Find implicit authentication default scheme (ASP.NET Core 9)** - * Finds calls to `AddAuthentication()` with no arguments. In .NET 9, a single registered authentication scheme is no longer automatically used as the default. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindInMemoryDirectoryInfo](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findinmemorydirectoryinfo) - * **Find `InMemoryDirectoryInfo` rootDir prepend change** - * Finds `new InMemoryDirectoryInfo()` constructor calls. In .NET 9, `rootDir` is prepended to file paths that don't start with the `rootDir`, which may change file matching behavior. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindIncrementingPollingCounter](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findincrementingpollingcounter) - * **Find `IncrementingPollingCounter` async callback change** - * Finds `new IncrementingPollingCounter()` constructor calls. In .NET 9, the initial callback invocation is asynchronous instead of synchronous, which may change timing behavior. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindJsonDocumentNullable](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findjsondocumentnullable) - * **Find `JsonSerializer.Deserialize` nullable `JsonDocument` change** - * Finds `JsonSerializer.Deserialize()` calls. In .NET 9, nullable `JsonDocument` properties now deserialize to a `JsonDocument` with `RootElement.ValueKind == JsonValueKind.Null` instead of being `null`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindJsonStringEnumConverter](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findjsonstringenumconverter) - * **Find non-generic JsonStringEnumConverter** - * Finds usages of the non-generic `JsonStringEnumConverter`. In .NET 9, the generic `JsonStringEnumConverter<TEnum>` is preferred for AOT compatibility. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindRuntimeHelpersGetSubArray](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findruntimehelpersgetsubarray) - * **Find `RuntimeHelpers.GetSubArray` return type change** - * Finds calls to `RuntimeHelpers.GetSubArray()` which may return a different array type in .NET 9. Code that depends on the runtime type of the returned array may break. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindSafeEvpPKeyHandleDuplicate](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findsafeevppkeyhandleduplicate) - * **Find `SafeEvpPKeyHandle.DuplicateHandle` up-ref change** - * Finds calls to `SafeEvpPKeyHandle.DuplicateHandle()`. In .NET 9, this method now increments the reference count instead of creating a deep copy, which may affect handle lifetime. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindServicePointManager](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findservicepointmanager) - * **Find `ServicePointManager` usage (SYSLIB0014)** - * Finds usages of `ServicePointManager` which is fully obsolete in .NET 9 (SYSLIB0014). Settings on `ServicePointManager` don't affect `SslStream` or `HttpClient`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindSwashbuckle](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findswashbuckle) - * **Find Swashbuckle usage (ASP.NET Core 9 built-in OpenAPI)** - * Finds usages of Swashbuckle APIs (`AddSwaggerGen`, `UseSwagger`, `UseSwaggerUI`). .NET 9 includes built-in OpenAPI support. Consider migrating to `AddOpenApi()`/`MapOpenApi()`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindX509CertificateConstructors](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findx509certificateconstructors) - * **Find obsolete `X509Certificate2`/`X509Certificate` constructors (SYSLIB0057)** - * Finds usages of `X509Certificate2` and `X509Certificate` constructors that accept binary content or file paths, which are obsolete in .NET 9 (SYSLIB0057). Use `X509CertificateLoader` methods instead. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindZipArchiveCompressionLevel](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findziparchivecompressionlevel) - * **Find `ZipArchive.CreateEntry` with `CompressionLevel` (bit flag change)** - * Finds `ZipArchive.CreateEntry()` and `ZipFileExtensions.CreateEntryFromFile()` calls with a `CompressionLevel` parameter. In .NET 9, the `CompressionLevel` value now sets general-purpose bit flags in the ZIP central directory header, which may affect interoperability. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.FindZipArchiveEntryEncoding](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/findziparchiveentryencoding) - * **Find `ZipArchiveEntry` name/comment UTF-8 encoding change** - * Finds access to `ZipArchiveEntry.Name`, `FullName`, or `Comment` properties. In .NET 9, these now respect the UTF-8 flag in ZIP entries, which may change decoded values. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.MigrateSwashbuckleToOpenApi](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/migrateswashbuckletoopenapi) - * **Migrate Swashbuckle to built-in OpenAPI** - * Migrate from Swashbuckle to the built-in OpenAPI support in ASP.NET Core 10+. Replaces `AddSwaggerGen()` with `AddOpenApi()`, `UseSwaggerUI()` with `MapOpenApi()`, removes `UseSwagger()`, removes Swashbuckle packages, and adds `Microsoft.AspNetCore.OpenApi`. Only fires when every project targets net10.0+ (the version that ships Microsoft.OpenApi 2.x with its flattened type namespaces). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.RemoveConfigureAwaitFalse](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/removeconfigureawaitfalse) - * **Remove ConfigureAwait(false)** - * Remove `.ConfigureAwait(false)` calls that are unnecessary in ASP.NET Core and modern .NET applications (no SynchronizationContext). Do not apply to library code targeting .NET Framework. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UpgradeToDotNet9](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/upgradetodotnet9) - * **Migrate to .NET 9** - * Migrate C# projects to .NET 9, applying necessary API changes. Includes all .NET 7 and .NET 8 migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/9.0. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseEscapeSequenceE](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/useescapesequencee) - * **Use \e escape sequence** - * Replace `\u001b` and `\x1b` escape sequences with `\e`. C# 13 introduced `\e` as a dedicated escape sequence for the escape character (U+001B). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseFrozenCollections](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/usefrozencollections) - * **Use Frozen collections instead of Immutable** - * Replace `ToImmutableDictionary()` with `ToFrozenDictionary()` and `ToImmutableHashSet()` with `ToFrozenSet()`. Frozen collections (.NET 8+) provide better read performance for collections populated once and read many times. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseGuidCreateVersion7](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/useguidcreateversion7) - * **Use Guid.CreateVersion7()** - * Replace `Guid.NewGuid()` with `Guid.CreateVersion7()`. Version 7 GUIDs are time-ordered and better for database primary keys, indexing, and sorting. Available since .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseLinqAggregateBy](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/uselinqaggregateby) - * **Use LINQ AggregateBy()** - * Replace `collection.GroupBy(keySelector).ToDictionary(g => g.Key, g => g.Aggregate(seed, func))` with `collection.AggregateBy(keySelector, seed, func).ToDictionary()`. Available since .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseLinqCountBy](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/uselinqcountby) - * **Use LINQ CountBy()** - * Replace `collection.GroupBy(selector).Select(g => g.Count())` with `collection.CountBy(selector)`. Available since .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseLinqIndex](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/uselinqindex) - * **Use LINQ Index()** - * Replace `collection.Select((item, index) => (index, item))` with `collection.Index()`. Available since .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseLockObject](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/uselockobject) - * **Use System.Threading.Lock for lock fields** - * Replace `object` fields initialized with `new object()` with `System.Threading.Lock` initialized with `new()`. The Lock type provides better performance with the lock statement. Available since .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseMapStaticAssets](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/usemapstaticassets) - * **Use MapStaticAssets()** - * Replace `UseStaticFiles()` with `MapStaticAssets()` for ASP.NET Core 9. Only applies when the receiver supports `IEndpointRouteBuilder` (WebApplication / minimal hosting). Skips Startup.cs patterns using `IApplicationBuilder` where `MapStaticAssets` is not available. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseTaskCompletedTask](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/usetaskcompletedtask) - * **Use Task.CompletedTask** - * Replace `Task.FromResult(0)`, `Task.FromResult(true)`, and `Task.FromResult(false)` with `Task.CompletedTask` when the return type is `Task` (not `Task<T>`). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseVolatileReadWrite](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/usevolatilereadwrite) - * **Use Volatile.Read/Write (SYSLIB0054)** - * Replace `Thread.VolatileRead` and `Thread.VolatileWrite` with `Volatile.Read` and `Volatile.Write`. The Thread methods are obsolete in .NET 9 (SYSLIB0054). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.UseX509CertificateLoader](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/net9/usex509certificateloader) - * **Use X509CertificateLoader (SYSLIB0057)** - * Replace `new X509Certificate2(path, password)` with `X509CertificateLoader.LoadPkcs12FromFile(path, password)`. The two-argument X509Certificate2 constructor is obsolete in .NET 9 (SYSLIB0057). -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework48.ConvertClassicCsprojToSdk](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/netframework48/convertclassiccsprojtosdk) - * **Convert classic csproj to SDK-style (net48)** - * Rewrites a non-SDK .NET Framework 4.8 .csproj into SDK-style form: sets `Sdk="Microsoft.NET.Sdk"`, removes the legacy MSBuild boilerplate (`<Import>`s, default `<Compile>` items, configuration-conditional `<PropertyGroup>` blocks, SDK-managed properties), and replaces `<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>` with `<TargetFramework>net48</TargetFramework>`. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework48.MigratePackagesConfigToPackageReference](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/netframework48/migratepackagesconfigtopackagereference) - * **Migrate `packages.config` to `<PackageReference>` (net48)** - * Moves NuGet package entries from `packages.config` into `<PackageReference>` items in the sibling `.csproj`, drops facade packages provided transitively by `Microsoft.NETFramework.ReferenceAssemblies.Net48`, adds that reference-assemblies package, and removes the now-empty `packages.config`. Scoped to .NET Framework 4.8 projects. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework48.UpgradeToNetFramework48Sdk](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/netframework48/upgradetonetframework48sdk) - * **Modernize .NET Framework 4.8 project (SDK + PackageReference)** - * Migrates a classic .NET Framework 4.8 csproj that uses `packages.config` to SDK-style with `<PackageReference>` entries. Combines `MigratePackagesConfigToPackageReference` and `ConvertClassicCsprojToSdk` so the resulting project builds with `dotnet build` on non-Windows machines via the `Microsoft.NETFramework.ReferenceAssemblies.Net48` targeting pack. -* [OpenRewrite.Recipes.CSharp.Migration.Dotnet.RemoveMethodInvocations](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/dotnet/removemethodinvocations) - * **Remove method invocations** - * Remove method invocations if syntactically safe. - ### recipes-scala * [org.openrewrite.scala.recipes.cleanup.AvoidEmptyCatchBlock](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/scala/recipes/cleanup/avoidemptycatchblock) @@ -5056,72 +4561,6 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * **Use ScalaTest matchers instead of `assert(x == y)`** * Finds `assert(x == y)` patterns and `assertEquals` calls. Consider using ScalaTest matchers: `x shouldBe y`. -### recipes-tunit - -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.AddAsyncToTestMethods](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/addasynctotestmethods) - * **Add `async Task` to methods containing `await`** - * Find methods that contain `await` expressions but return `void`, and change their signature to `async Task`. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.AsyncLifetimeToBeforeAfterTest](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/asynclifetimetobeforeaftertest) - * **Find `IAsyncLifetime` needing TUnit migration** - * Find classes implementing `IAsyncLifetime` that should use `[Before(Test)]` and `[After(Test)]` for TUnit. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.ChangeXUnitUsings](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/changexunitusings) - * **Change xUnit using directives to TUnit** - * Replace `using Xunit;` with `using TUnit.Core;` and `using TUnit.Assertions;`. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.ClassFixtureToClassDataSource](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/classfixturetoclassdatasource) - * **Find `IClassFixture<T>` needing TUnit migration** - * Find classes implementing `IClassFixture<T>` that should use `[ClassDataSource<T>]` for TUnit. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.CollectionFixtureToClassDataSource](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/collectionfixturetoclassdatasource) - * **Replace `ICollectionFixture<T>` with `[ClassDataSource<T>]`** - * Migrate xUnit collection fixtures to TUnit: remove `[CollectionDefinition]` and `ICollectionFixture<T>` from definition classes, add `[ClassDataSource<T>(Shared = SharedType.Keyed)]` to test classes, and convert constructor fixture injection to primary constructors. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.CollectionToNotInParallel](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/collectiontonotinparallel) - * **Replace `[Collection]` with `[NotInParallel]`** - * Replace the xUnit `[Collection("name")]` attribute with the TUnit `[NotInParallel("name")]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.ConstructorToBeforeTest](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/constructortobeforetest) - * **Find test constructors needing `[Before(Test)]`** - * Find constructors in test classes that should be converted to `[Before(Test)]` methods for TUnit. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.DisposableToAfterTest](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/disposabletoaftertest) - * **Replace `IDisposable` with `[After(Test)]`** - * Remove `IDisposable` from the base type list and add `[After(Test)]` to the `Dispose()` method. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.FactSkipToSkipAttribute](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/factskiptoskipattribute) - * **Extract `Skip` into `[Skip]` attribute** - * Extract the `Skip` argument from `[Fact(Skip = "...")]` or `[Theory(Skip = "...")]` into a separate TUnit `[Skip("...")]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.FactTimeoutToTimeoutAttribute](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/facttimeouttotimeoutattribute) - * **Extract `Timeout` into `[Timeout]` attribute** - * Extract the `Timeout` argument from `[Fact(Timeout = ...)]` or `[Theory(Timeout = ...)]` into a separate TUnit `[Timeout(...)]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.FactToTest](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/facttotest) - * **Replace `[Fact]` with `[Test]`** - * Replace the xUnit `[Fact]` attribute with the TUnit `[Test]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.InlineDataToArguments](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/inlinedatatoarguments) - * **Replace `[InlineData]` with `[Arguments]`** - * Replace the xUnit `[InlineData]` attribute with the TUnit `[Arguments]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.MemberDataToMethodDataSource](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/memberdatatomethoddatasource) - * **Replace `[MemberData]` with `[MethodDataSource]`** - * Replace the xUnit `[MemberData]` attribute with the TUnit `[MethodDataSource]` attribute. Fields and properties referenced by MemberData are converted to methods. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.MigrateFromXUnit](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/migratefromxunit) - * **Migrate from xUnit to TUnit** - * Migrate xUnit test attributes, assertions, and lifecycle patterns to their TUnit equivalents. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.MigrateFromXUnitAttributes](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/migratefromxunitattributes) - * **Migrate xUnit attributes to TUnit** - * Replace xUnit test attributes ([Fact], [Theory], [InlineData], etc.) with their TUnit equivalents. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.MigrateXUnitAssertions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/migratexunitassertions) - * **Migrate xUnit assertions to TUnit** - * Replace xUnit `Assert.*` calls with TUnit's fluent `await Assert.That(...).Is*()` assertions. Note: test methods may need to be changed to `async Task` separately. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.MigrateXUnitDependencies](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/migratexunitdependencies) - * **Migrate xUnit NuGet dependencies to TUnit** - * Remove xUnit NuGet package references, add TUnit, and upgrade the target framework to at least .NET 9. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.TestOutputHelperToTestContext](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/testoutputhelpertotestcontext) - * **Find `ITestOutputHelper` needing TUnit migration** - * Find usages of xUnit's `ITestOutputHelper` that should be replaced with TUnit's `TestContext`. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.TheoryToTest](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/theorytotest) - * **Replace `[Theory]` with `[Test]`** - * Replace the xUnit `[Theory]` attribute with the TUnit `[Test]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.TraitCategoryToCategory](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/traitcategorytocategory) - * **Replace `[Trait("Category", ...)]` with `[Category]`** - * Replace xUnit `[Trait("Category", "X")]` with TUnit's dedicated `[Category("X")]` attribute. -* [OpenRewrite.Recipes.CSharp.Migration.TUnit.FromXUnit.TraitToProperty](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/recipes/csharp/migration/tunit/fromxunit/traittoproperty) - * **Replace `[Trait]` with `[Property]`** - * Replace the xUnit `[Trait]` attribute with the TUnit `[Property]` attribute. - ### rewrite-ai * [io.moderne.ai.FindAgentsInUse](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/ai/findagentsinuse) @@ -5136,6 +4575,48 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full ### rewrite-angular +* [org.openrewrite.angular.UpgradeToAngular10](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular10) + * **Upgrade to Angular 10** + * Migrates Angular 9.x applications to Angular 10. This includes removing the deprecated `es5BrowserSupport` option from `angular.json`, renaming deprecated `validator`/`asyncValidator` to their plural forms, renaming `browserslist` to `.browserslistrc`, migrating to solution-style `tsconfig.json`, and upgrading Angular, TypeScript, and related dependency versions. +* [org.openrewrite.angular.UpgradeToAngular11](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular11) + * **Upgrade to Angular 11** + * Migrates Angular 10.x applications to Angular 11. This includes replacing `ViewEncapsulation.Native` with `ViewEncapsulation.ShadowDom`, removing the deprecated `extractCss` build option from `angular.json`, flagging deprecated string-based `loadChildren` and `preserveQueryParams` usage, and upgrading Angular, TypeScript, and related dependency versions. +* [org.openrewrite.angular.UpgradeToAngular12](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular12) + * **Upgrade to Angular 12** + * Migrates Angular 11.x applications to Angular 12. This includes adding `defaultConfiguration: "production"` to build targets in `angular.json`, replacing `node-sass` with `sass` (Dart Sass), flagging deprecated `async` test helper and View Engine APIs, and upgrading Angular, TypeScript, and related dependency versions. +* [org.openrewrite.angular.UpgradeToAngular13](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular13) + * **Upgrade to Angular 13** + * Migrates Angular 12.x applications to Angular 13. This includes updating `tsconfig.json` target to `es2017`, removing IE11 polyfills, removing `defaultProject` from `angular.json`, adding TestBed module teardown, simplifying `ComponentFactoryResolver` usage, and upgrading Angular, TypeScript, and related dependency versions. +* [org.openrewrite.angular.UpgradeToAngular14](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular14) + * **Upgrade to Angular 14** + * Migrates Angular 13.x applications to Angular 14. This includes replacing form classes with their `Untyped*` equivalents for backward compatibility with typed forms, updating deprecated `initialNavigation` router option values, removing `aotSummaries` from TestBed calls, and flagging `pathMatch` properties that may need type narrowing. +* [org.openrewrite.angular.UpgradeToAngular15](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular15) + * **Upgrade to Angular 15** + * Migrates Angular 14.x applications to Angular 15. This includes removing the `relativeLinkResolution` option from `RouterModule.forRoot()`, removing the `enableIvy` compiler option from `tsconfig.json`, flagging the deprecated `DATE_PIPE_DEFAULT_TIMEZONE` token and `providedIn: NgModule`/`'any'` usage, and upgrading Angular, TypeScript, and related dependency versions. +* [org.openrewrite.angular.UpgradeToAngular16](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular16) + * **Upgrade to Angular 16** + * Migrates Angular 15.x applications to Angular 16. This includes removing `entryComponents` and `moduleId` from decorators, replacing `RouterLinkWithHref` with `RouterLink`, moving the `XhrFactory` import to `@angular/common`, and flagging removed APIs like `ReflectiveInjector`, `renderModuleFactory`, and `BrowserTransferStateModule`. +* [org.openrewrite.angular.UpgradeToAngular17](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular17) + * **Upgrade to Angular 17** + * Migrates Angular 16.x applications to Angular 17. This includes updating Angular package versions, replacing legacy deep `zone.js` imports, flagging the removed `withNoDomReuse` and `setupTestingRouter` APIs, and upgrading TypeScript and `zone.js` dependencies. +* [org.openrewrite.angular.UpgradeToAngular18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular18) + * **Upgrade to Angular 18** + * Migrates Angular 17.x applications to Angular 18. This includes replacing the deprecated `async` test helper with `waitForAsync`, migrating `HttpClientModule` to `provideHttpClient()`, moving Transfer State APIs to `@angular/core`, and flagging removed platform APIs. +* [org.openrewrite.angular.UpgradeToAngular19](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular19) + * **Upgrade to Angular 19** + * Migrates Angular 18.x applications to Angular 19. This includes updating Angular package versions, adjusting the standalone default, renaming `ExperimentalPendingTasks` to `PendingTasks`, moving the `ApplicationConfig` import to `@angular/core`, and updating `zone.js`. +* [org.openrewrite.angular.UpgradeToAngular20](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular20) + * **Upgrade to Angular 20** + * Migrates Angular 19.x applications to Angular 20. This includes running the Angular 19 migration first, then updating Angular package versions, renaming experimental APIs promoted to stable, and upgrading TypeScript to 5.8.x. +* [org.openrewrite.angular.UpgradeToAngular21](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular21) + * **Upgrade to Angular 21** + * Migrates Angular 20.x applications to Angular 21. This includes running the Angular 20 migration first, flagging Karma test runner usage for Vitest migration, deprecated NgClass, zone.js-dependent test helpers, and upgrading TypeScript to 5.9.x. +* [org.openrewrite.angular.UpgradeToAngular8](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular8) + * **Upgrade to Angular 8** + * Migrates Angular 7.x applications to Angular 8. This includes adding the now-required `static: false` to `@ViewChild` and `@ContentChild` decorators, moving the `DOCUMENT` import from `@angular/platform-browser` to `@angular/common`, removing `rxjs-compat` and flagging any remaining RxJS 5-style imports, flagging removed `@angular/http` imports, converting deprecated string-based `loadChildren` to dynamic imports, and upgrading Angular, TypeScript, and related dependency versions. +* [org.openrewrite.angular.UpgradeToAngular9](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/upgradetoangular9) + * **Upgrade to Angular 9** + * Migrates Angular 8.x applications to Angular 9. This includes removing the now-default `static: false` from view query decorators, replacing `TestBed.get()` with `TestBed.inject()`, adding generic type parameters to `ModuleWithProviders`, enabling AOT compilation in `angular.json`, updating `tsconfig.json` module settings for Ivy, flagging removed View Engine APIs (`Renderer`, `RenderComponentType`, `RootRenderer`), and upgrading Angular, TypeScript, and related dependency versions. * [org.openrewrite.angular.migration.add-default-configuration](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/migration/add-default-configuration) * **Add `defaultConfiguration` to build targets** * Adds `"defaultConfiguration": "production"` to build architect targets in `angular.json`. Angular 12 changed `ng build` to produce production bundles by default. @@ -5253,6 +4734,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.angular.migration.replace-load-children-string](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/migration/replace-load-children-string) * **Replace string-based `loadChildren` with dynamic `import()`** * Converts the deprecated string-based `loadChildren: 'path#Module'` syntax to dynamic imports: `loadChildren: () => import('path').then(m => m.Module)`. +* [org.openrewrite.angular.migration.replace-node-sass-with-sass](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/migration/replace-node-sass-with-sass) + * **Replace `node-sass` with `sass`** + * Replaces the deprecated `node-sass` package with `sass` (Dart Sass). Angular 12 requires Dart Sass; `node-sass` is no longer supported. * [org.openrewrite.angular.migration.replace-router-link-with-href](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/angular/migration/replace-router-link-with-href) * **Replace `RouterLinkWithHref` with `RouterLink`** * Replaces `RouterLinkWithHref` with `RouterLink` in imports and usages. `RouterLinkWithHref` was merged into `RouterLink` in Angular 16. @@ -5457,6 +4941,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.primeng.UpgradeComponentsTo18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/upgradecomponentsto18) * **Upgrade PrimeNG components to 18** * Handles component renames, deprecations, and removals for PrimeNG 18. Renames Calendar to DatePicker, Dropdown to Select, InputSwitch to ToggleSwitch, OverlayPanel to Popover, and Sidebar to Drawer (TS imports + identifier usages + HTML selectors). Migrates the `Messages` template usage to the `<p-message>` + `@for` loop. Marks removed modules (Chips, TriStateCheckbox, Messages, DataViewLayoutOptions, pAnimate) with TODO stubs, marks deprecated components (TabMenu, Steps, InlineMessage, TabView, pDefer) with TODO comments on their imports, and marks deprecated CSS classes (`.p-link`, `.p-highlight`, `.p-fluid`) and `<p-drawer>`/`<p-sidebar>` `size` usages with HTML TODO comments. All marked sites are written to the `ManualMigrationSteps` data table. +* [org.openrewrite.primeng.UpgradeTo18](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/primeng/upgradeto18) + * **Upgrade to PrimeNG 18** + * Migrates PrimeNG 17.x applications to PrimeNG 18. Renames components, migrates `PrimeNGConfig` to `PrimeNG` (with signal-backed setters), comments out the obsolete `primeng/resources` style entries in `angular.json`, wires `providePrimeNG(\{ theme: \{ preset: Aura \} \})` into the root NgModule and adds `@primeng/themes` to `package.json`. Anything that can't be deterministically migrated (removed-and-no-direct-replacement components, deprecated CSS classes, structural template changes) gets a TODO comment in source plus a row in the `ManualMigrationSteps` data table for an agent or human to finish. ### rewrite-cryptography @@ -5652,6 +5139,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [io.moderne.java.dropwizard.boot.annotation.AddClassAnnotationIfSuperTypeExists](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/dropwizard/boot/annotation/addclassannotationifsupertypeexists) * **Add annotation if target supertype exists** * Adds an annotation to a class if it extends or implements a specified target type. +* [io.moderne.java.dropwizard.boot.bundle.MigrateMultiPartBundle](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/dropwizard/boot/bundle/migratemultipartbundle) + * **Migrate Dropwizard `MultiPartBundle` to Spring multipart configuration** + * Removes `bootstrap.addBundle(new MultiPartBundle())` and its import, and adds `spring.servlet.multipart` configuration (enabled, unlimited sizes) to the module's Spring configuration, creating `application.yml` if none exists. Spring Boot enables multipart support automatically. Only modules that actually registered `MultiPartBundle` are configured. * [io.moderne.java.dropwizard.boot.datasource.RemoveDataSourceFactoryBuildChain](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/dropwizard/boot/datasource/removedatasourcefactorybuildchain) * **Replace DataSourceFactory build chain with @Autowired DataSource** * Replaces `DataSourceFactory.build(MetricRegistry, String)` variable declarations with `@Autowired DataSource` fields. Spring Boot auto-configures the DataSource from `spring.datasource.*` properties. Note: connection pool metrics previously wired via `MetricRegistry` require `spring-boot-starter-actuator` for equivalent observability. @@ -6230,7 +5720,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * Extract project metadata (name, version, description) from Python pyproject.toml files. * [io.moderne.prethink.calm.FindPythonTestCoverage](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/prethink/calm/findpythontestcoverage) * **Find Python test coverage** - * Identify test methods in Python test files. Detects pytest test functions/classes and unittest.TestCase subclasses, and populates the TestMapping table. + * Identify test methods in Python test files. Detects pytest test functions/classes, unittest.TestCase subclasses, and behave/pytest-bdd/lettuce BDD step definitions, and populates the TestMapping table. * [io.moderne.prethink.calm.FindSQLAlchemyModels](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/prethink/calm/findsqlalchemymodels) * **Find SQLAlchemy and Django ORM models** * Identify ORM model classes in Python applications. Detects SQLAlchemy models with DeclarativeBase inheritance, Flask-SQLAlchemy models with db.Model, and Django ORM models extending models.Model. @@ -6642,6 +6132,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [io.moderne.java.jsf.richfaces.update45.UpdateXHTMLTags](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/jsf/richfaces/update45/updatexhtmltags) * **Migrate RichFaces tags in `xhtml` files** * Migrate RichFaces tags in `xhtml` files to RichFaces 4. +* [io.moderne.java.spring.batch.AddJobRegistryToTaskExecutorJobOperator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/batch/addjobregistrytotaskexecutorjoboperator) + * **Add `setJobRegistry(..)` to manually configured `TaskExecutorJobOperator`** + * Spring Batch 6 replaced `TaskExecutorJobLauncher` with `TaskExecutorJobOperator`, which requires both `setJobRepository(..)` and `setJobRegistry(..)` to be called before `afterPropertiesSet()`. When a `TaskExecutorJobOperator` is constructed and initialized manually (typically in a `@Bean` factory method) without a `setJobRegistry(..)` call, add a `JobRegistry` parameter to the enclosing method and call `setJobRegistry(..)` so the operator is fully configured. * [io.moderne.java.spring.boot.AddSpringBootApplication](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/boot/addspringbootapplication) * **Add `@SpringBootApplication` class** * Adds a `@SpringBootApplication` class containing a main method to bootify your Spring Framework application. @@ -7152,6 +6645,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [io.moderne.java.spring.security7.CommentOnSecurityContextAuthenticationInKotlin](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/security7/commentonsecuritycontextauthenticationinkotlin) * **Comment on Kotlin usages of `SecurityContext.getAuthentication()`** * Spring Security 7 made `SecurityContext.getAuthentication()` return `@Nullable Authentication`. In Kotlin this becomes `Authentication?`, so existing chains like `SecurityContextHolder.getContext().authentication.credentials` no longer compile. This recipe adds a TODO comment on the line above each Kotlin statement that reads the authentication — both the explicit `getAuthentication()` form and the Kotlin property form `.authentication` — so a developer can decide per call site whether to use a safe-call (`?.`) or a non-null assertion (`!!`). +* [io.moderne.java.spring.security7.MigrateDaoAuthenticationProviderConstructor](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/security7/migratedaoauthenticationproviderconstructor) + * **Use constructor injection for `DaoAuthenticationProvider`** + * Spring Security 7.0 removed the no-arg `DaoAuthenticationProvider()` constructor and the `setUserDetailsService(UserDetailsService)` setter; `UserDetailsService` is now a required constructor argument. This recipe folds `setUserDetailsService(x)` into the constructor (`new DaoAuthenticationProvider(x)`) and removes the setter when the provider is created with the no-arg constructor in the same block, for both Java and Kotlin sources. `setPasswordEncoder(...)` and other configuration are preserved. When the setter cannot be safely folded, a TODO comment with migration guidance is added instead. * [io.moderne.java.spring.security7.MigrateMvcRequestMatcher](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/spring/security7/migratemvcrequestmatcher) * **Migrate `MvcRequestMatcher` to `PathPatternRequestMatcher`** * In Spring Security 7.0, `MvcRequestMatcher` which depends on the deprecated `HandlerMappingIntrospector` is removed in favor of `PathPatternRequestMatcher`. This recipe migrates constructor and builder usage to the new pattern. @@ -7448,7 +6944,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * Finds dependencies in `*.csproj` and `packages.config`. * [org.openrewrite.csharp.dependencies.DependencyVulnerabilityCheck](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/dependencies/dependencyvulnerabilitycheck) * **Find and fix vulnerable Nuget dependencies** - * 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 by default only upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this can be controlled using the `maximumUpgradeDelta` option. Vulnerability information comes from the [GitHub Security Advisory Database](https://docs.github.com/en/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database), which aggregates vulnerability data from several public databases, including the [National Vulnerability Database](https://nvd.nist.gov/) maintained by the United States government. Dependencies following [Semantic Versioning](https://semver.org/) will see their _patch_ version updated where applicable. Last updated: 2026-06-01T1251. + * 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 by default only upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this can be controlled using the `maximumUpgradeDelta` option. Vulnerability information comes from the [GitHub Security Advisory Database](https://docs.github.com/en/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database), which aggregates vulnerability data from several public databases, including the [National Vulnerability Database](https://nvd.nist.gov/) maintained by the United States government. Dependencies following [Semantic Versioning](https://semver.org/) will see their _patch_ version updated where applicable. Last updated: 2026-06-15T1301. * [org.openrewrite.csharp.dependencies.UpgradeDependencyVersion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/csharp/dependencies/upgradedependencyversion) * **Upgrade C# dependency versions** * Upgrades dependencies in `*.csproj`, `Directory.Packages.props`, and `packages.config`. @@ -7460,7 +6956,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * Locates and reports on all licenses in use. * [org.openrewrite.java.dependencies.DependencyVulnerabilityCheck](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/dependencies/dependencyvulnerabilitycheck) * **Find and fix vulnerable Maven/Gradle dependencies** - * 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 by default only upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this can be controlled using the `maximumUpgradeDelta` option. Vulnerability information comes from the [GitHub Security Advisory Database](https://docs.github.com/en/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database), which aggregates vulnerability data from several public databases, including the [National Vulnerability Database](https://nvd.nist.gov/) maintained by the United States government. Upgrades dependencies versioned according to [Semantic Versioning](https://semver.org/). ## Customizing Vulnerability Data This recipe can be customized by extending `DependencyVulnerabilityCheckBase` and overriding the vulnerability data sources: - **`baselineVulnerabilities(ExecutionContext ctx)`**: Provides the default set of known vulnerabilities. The base implementation loads vulnerability data from the GitHub Security Advisory Database CSV file using `ResourceUtils.parseResourceAsCsv()`. Override this method to replace the entire vulnerability dataset with your own curated list. - **`supplementalVulnerabilities(ExecutionContext ctx)`**: Allows adding custom vulnerability data beyond the baseline. The base implementation returns an empty list. Override this method to add organization-specific vulnerabilities, internal security advisories, or vulnerabilities from additional sources while retaining the baseline GitHub Advisory Database. Both methods return `List<Vulnerability>` objects. Vulnerability data can be loaded from CSV files using `ResourceUtils.parseResourceAsCsv(path, Vulnerability.class, consumer)` or constructed programmatically. To customize, extend `DependencyVulnerabilityCheckBase` and override one or both methods depending on your needs. For example, override `supplementalVulnerabilities()` to add custom CVEs while keeping the standard vulnerability database, or override `baselineVulnerabilities()` to use an entirely different vulnerability data source. Last updated: 2026-06-01T1251. + * 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 by default only upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this can be controlled using the `maximumUpgradeDelta` option. Vulnerability information comes from the [GitHub Security Advisory Database](https://docs.github.com/en/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database), which aggregates vulnerability data from several public databases, including the [National Vulnerability Database](https://nvd.nist.gov/) maintained by the United States government. Upgrades dependencies versioned according to [Semantic Versioning](https://semver.org/). ## Customizing Vulnerability Data This recipe can be customized by extending `DependencyVulnerabilityCheckBase` and overriding the vulnerability data sources: - **`baselineVulnerabilities(ExecutionContext ctx)`**: Provides the default set of known vulnerabilities. The base implementation loads vulnerability data from the GitHub Security Advisory Database CSV file using `ResourceUtils.parseResourceAsCsv()`. Override this method to replace the entire vulnerability dataset with your own curated list. - **`supplementalVulnerabilities(ExecutionContext ctx)`**: Allows adding custom vulnerability data beyond the baseline. The base implementation returns an empty list. Override this method to add organization-specific vulnerabilities, internal security advisories, or vulnerabilities from additional sources while retaining the baseline GitHub Advisory Database. Both methods return `List<Vulnerability>` objects. Vulnerability data can be loaded from CSV files using `ResourceUtils.parseResourceAsCsv(path, Vulnerability.class, consumer)` or constructed programmatically. To customize, extend `DependencyVulnerabilityCheckBase` and override one or both methods depending on your needs. For example, override `supplementalVulnerabilities()` to add custom CVEs while keeping the standard vulnerability database, or override `baselineVulnerabilities()` to use an entirely different vulnerability data source. Last updated: 2026-06-15T1301. * [org.openrewrite.java.dependencies.RemoveUnusedDependencies](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/dependencies/removeunuseddependencies) * **Remove unused dependencies** * Scans through source code collecting references to types and methods, removing any dependencies that are not used from Maven or Gradle build files. This is best effort and not guaranteed to work well in all cases; false positives are still possible. This recipe takes reflective access into account: - When reflective access to a class is made unambiguously via a string literal, such as: `Class.forName("java.util.List")` that is counted correctly. - When reflective access to a class is made ambiguously via anything other than a string literal no dependencies will be removed. This recipe takes transitive dependencies into account: - When a direct dependency is not used but a transitive dependency it brings in _is_ in use the direct dependency is not removed. @@ -7548,6 +7044,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.java.security.SecureTempFileCreation](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/securetempfilecreation) * **Use secure temporary file creation** * `java.io.File.createTempFile()` has exploitable default file permissions. This recipe migrates to the more secure `java.nio.file.Files.createTempFile()`. +* [org.openrewrite.java.security.UpgradeInadequateKeySize](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/upgradeinadequatekeysize) + * **Upgrade inadequate cryptographic key sizes** + * Rewrites cryptographic key-size literals that fall below current minimums. RSA/DSA/DH < 2048 bits are upgraded to 2048; EC < 224 bits are upgraded to 256 (when the algorithm is resolvable from `KeyPairGenerator.getInstance(...)`); symmetric (AES) < 128 bits to 128; weak named EC curves (e.g. `secp112r1`, `prime192v1`) to `secp256r1`. Companion fix recipe to `FindInadequateKeySize`. Note: changing key sizes can break interop with existing artifacts; review before applying. * [org.openrewrite.java.security.UseFilesCreateTempDirectory](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/usefilescreatetempdirectory) * **Use `Files#createTempDirectory`** * Use `Files#createTempDirectory` when the sequence `File#createTempFile(..)`->`File#delete()`->`File#mkdir()` is used for creating a temp directory. @@ -7569,6 +7068,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.java.security.marshalling.SecureSnakeYamlConstructor](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/marshalling/securesnakeyamlconstructor) * **Secure the use of SnakeYAML's constructor** * See the [paper](https://github.com/mbechler/marshalsec) on this subject. +* [org.openrewrite.java.security.search.FindBeanPropertyAssignment](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findbeanpropertyassignment) + * **Find Apache Commons BeanUtils property assignments** + * Finds calls to Apache Commons BeanUtils and PropertyUtils setters and bulk-copy methods (`setProperty`, `populate`, `copyProperties`, `copyProperty`, `setNestedProperty`, `setSimpleProperty`, `setIndexedProperty`, `setMappedProperty`) — including the equivalent instance-method forms on `BeanUtilsBean` and `PropertyUtilsBean`, and on any subclass of those, regardless of how the bean instance is obtained (`getInstance()`, `new`, injected field, etc.). When the property name or value flows from an untrusted source (e.g. HTTP request parameters), these calls enable bean-injection / mass-assignment (CWE-915) — an attacker can set any settable field on the bean, including ones the application never intended to expose. Per Sonar S4512 each call site needs human review for whether the property name and value come from trusted input. Detector only; does not modify code. * [org.openrewrite.java.security.search.FindCommandInjection](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findcommandinjection) * **Find OS command injection vectors** * Finds calls to `Runtime.exec(String)` which passes the command through a shell interpreter, enabling command injection via metacharacters like `;`, `|`, and `&&`. Use the `String[]` overload instead to avoid shell interpretation. @@ -7586,13 +7088,16 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * Finds calls to `HttpServletResponse.addHeader()`, `setHeader()`, and `addCookie()` which, when header values are derived from user input without CRLF sanitization, can allow HTTP response splitting attacks. Full taint-based detection requires rewrite-program-analysis; this recipe identifies the sink call sites for manual review. * [org.openrewrite.java.security.search.FindInadequateKeySize](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findinadequatekeysize) * **Find inadequate cryptographic key sizes** - * Finds cryptographic key generation with inadequate key sizes. RSA keys should be at least 2048 bits, DSA keys at least 2048 bits, EC keys at least 256 bits, and symmetric keys (AES) at least 128 bits. NIST recommends RSA-2048+ and AES-128+ as minimum for all new applications. + * Finds cryptographic key generation with inadequate key sizes. RSA and DSA keys should be at least 2048 bits, EC keys at least 224 bits, and symmetric keys (AES) at least 128 bits. Weak named EC curves (e.g. `secp112r1`, `prime192v1`) are also flagged. NIST SP 800-131A Rev 2 requires RSA/DSA 2048+, EC 224+, AES 128+. * [org.openrewrite.java.security.search.FindInsecureRememberMeConfig](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findinsecureremembermeconfig) * **Find insecure Spring Security RememberMe configuration** * Finds Spring Security RememberMe configurations with insecure settings: `useSecureCookie(false)` (allows cookie transmission over HTTP), `alwaysRemember(true)` (bypasses user opt-in), or `tokenValiditySeconds(...)` set longer than 30 days (extends the window in which a stolen remember-me cookie can be replayed). * [org.openrewrite.java.security.search.FindInsecureSessionFixationConfig](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findinsecuresessionfixationconfig) * **Find Spring Security configurations that disable session fixation protection** * Finds Spring Security configurations that disable session fixation protection by calling `sessionFixation().none()`. Without session fixation protection, an attacker who obtains a victim's session identifier before authentication can reuse it to hijack the authenticated session. Spring Security defaults to `changeSessionId()`; applications should keep that default or use `migrateSession()`. +* [org.openrewrite.java.security.search.FindInstanceMethodStaticFieldWrite](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findinstancemethodstaticfieldwrite) + * **Find writes to static fields from instance methods** + * Finds assignments, compound assignments (`+=`, `-=`, ...), and `++`/`--` operators that target a `static` field from inside a non-`static` instance method. Such writes race across instances and obscure ownership of the state; per Sonar S2696 the method should be made `static` or the state guarded by a thread-safe accessor. * [org.openrewrite.java.security.search.FindJacksonDefaultTypeMapping](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findjacksondefaulttypemapping) * **Find Jackson default type mapping enablement** * `ObjectMapper#enableTypeMapping(..)` can lead to vulnerable deserialization. @@ -7601,13 +7106,13 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * Finds calls to `HttpSession.setMaxInactiveInterval(int)` whose integer-literal argument exceeds 30 minutes or is zero/negative (which disables session expiration). Long-lived or non-expiring sessions increase the window for session hijacking and replay (CWE-613). * [org.openrewrite.java.security.search.FindMissingSpringAuthorization](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findmissingspringauthorization) * **Find Spring MVC handlers missing authorization** - * Flags Spring MVC (and WebFlux) controller methods reachable to anonymous users — either matched by `permitAll()` in a `SecurityFilterChain` / `SecurityWebFilterChain` bean (or in a legacy `WebSecurityConfigurerAdapter.configure(HttpSecurity)` override) or with no matching rule at all — and which do not carry an explicit authorization annotation (`@PreAuthorize`, `@PostAuthorize`, `@Secured`, `@RolesAllowed`, `@PermitAll`, `@DenyAll`), including annotations inherited from a superclass or overridden parent method. Detector only; does not modify code. + * Flags Spring MVC (and WebFlux) controller methods reachable to anonymous users — either matched by `permitAll()` in a `SecurityFilterChain` / `SecurityWebFilterChain` bean (or in a legacy `WebSecurityConfigurerAdapter.configure(HttpSecurity)` override) or with no matching rule at all — and which do not carry an explicit authorization annotation (`@PreAuthorize`, `@PostAuthorize`, `@Secured`, `@RolesAllowed`, `@PermitAll`, `@DenyAll`), including annotations inherited from a superclass or overridden parent method. Security rules are read from both the Java fluent API (`requestMatchers(...).permitAll()`) and the Kotlin DSL (`authorize("/path", permitAll)`). Detector only; does not modify code. * [org.openrewrite.java.security.search.FindPermissiveCorsConfiguration](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findpermissivecorsconfiguration) * **Find permissive CORS configuration** * Finds overly permissive CORS configurations that allow all origins, which can expose the application to cross-domain attacks. * [org.openrewrite.java.security.search.FindPredictableSalt](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findpredictablesalt) * **Find predictable cryptographic salts** - * Finds `PBEParameterSpec` and `PBEKeySpec` constructed with hardcoded salt byte arrays. A predictable salt undermines the purpose of salting, making rainbow table and precomputation attacks feasible. Salts should be generated randomly using `SecureRandom`. + * Finds `PBEParameterSpec` and `PBEKeySpec` constructed with hardcoded or too-short salt byte arrays. A predictable salt undermines the purpose of salting, making rainbow table and precomputation attacks feasible; a salt shorter than 16 bytes is below the minimum strength recommended by NIST SP 800-132. Salts should be generated randomly using `SecureRandom` and at least 16 bytes long. * [org.openrewrite.java.security.search.FindProcessControl](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/search/findprocesscontrol) * **Find process control vectors** * Finds calls to `System.loadLibrary()`, `System.load()`, and `Runtime.load()` which, when the library path or name is derived from user input, can allow an attacker to load arbitrary native code. Ensure library names are not externally controlled. @@ -7764,6 +7269,15 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.java.security.spring.RemoveEnableWebSecurityDebug](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/spring/removeenablewebsecuritydebug) * **Remove debug mode from Spring Security** * Removes the debug attribute from @EnableWebSecurity annotations to prevent sensitive security information from being logged in production. +* [org.openrewrite.java.security.xss.FixXssVulnerability](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/xss/fixxssvulnerability) + * **Fix XSS vulnerabilities** + * Aggregates the cross-site scripting (CWE-79) fixes. Covers Java sources that flow user-controlled values into HTML output sinks (via `FixXssVulnerabilityJava`, which consumes the same taint spec as `FindXssVulnerability`), JSP scriptlets that read directly from request parameters or headers, and Thymeleaf templates that use the unescaped `th:utext` attribute. +* [org.openrewrite.java.security.xss.FixXssVulnerabilityJsp](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/xss/fixxssvulnerabilityjsp) + * **Replace XSS-prone JSP scriptlets with `<c:out>`** + * Replaces `<%= request.getParameter("x") %>` and `<%= request.getHeader("x") %>` scriptlets in JSP files with the equivalent escaped `<c:out value="$\{param.x\}"/>` / `<c:out value="$\{header['x']\}"/>` tags, and inserts the JSTL core taglib at the top of the file if not already declared. Only fires on string-literal argument forms — arbitrary expressions inside `<%= ... %>` are left untouched for human review. Note: `request.getParameter` returns `null` for missing parameters and prints `"null"`, whereas `$\{param.x\}` renders empty; review templates that rely on the literal string `"null"`. +* [org.openrewrite.java.security.xss.ReplaceThymeleafUnescaped](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/security/xss/replacethymeleafunescaped) + * **Replace `th:utext` with `th:text` in Thymeleaf templates** + * Replaces Thymeleaf's unescaped attribute `th:utext` (and `data-th-utext`) with its escaped equivalent `th:text` (`data-th-text`) in `.html` / `.htm` template files. `th:utext` interpolates raw HTML and is the canonical Thymeleaf XSS sink. The recipe only fires on files that look like Thymeleaf templates (declare the `xmlns:th` namespace or use a `th:` / `data-th-` attribute somewhere). If you have a legitimate raw-HTML interpolation, restore it manually and rely on Thymeleaf's `[# th:utext]` block syntax or a sanitized model attribute. * [org.openrewrite.python.dependencies.DependencyVulnerabilityCheck](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/dependencies/dependencyvulnerabilitycheck) * **Find and fix vulnerable PyPI dependencies** * 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 by default only upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this can be controlled using the `maximumUpgradeDelta` option. Vulnerability information comes from the [GitHub Security Advisory Database](https://docs.github.com/en/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database), which aggregates vulnerability data from several public databases, including the [National Vulnerability Database](https://nvd.nist.gov/) maintained by the United States government. Dependencies following [Semantic Versioning](https://semver.org/) will see their _patch_ version updated where applicable. ## Customizing Vulnerability Data This recipe can be customized by extending `DependencyVulnerabilityCheckBase` and overriding the vulnerability data sources: - **`baselineVulnerabilities(ExecutionContext ctx)`**: Provides the default set of known vulnerabilities. The base implementation loads vulnerability data from the GitHub Security Advisory Database CSV file using `ResourceUtils.parseResourceAsCsv()`. Override this method to replace the entire vulnerability dataset with your own curated list. - **`supplementalVulnerabilities(ExecutionContext ctx)`**: Allows adding custom vulnerability data beyond the baseline. The base implementation returns an empty list. Override this method to add organization-specific vulnerabilities, internal security advisories, or vulnerabilities from additional sources while retaining the baseline GitHub Advisory Database. Both methods return `List<Vulnerability>` objects. Vulnerability data can be loaded from CSV files using `ResourceUtils.parseResourceAsCsv(path, Vulnerability.class, consumer)` or constructed programmatically. To customize, extend `DependencyVulnerabilityCheckBase` and override one or both methods depending on your needs. For example, override `supplementalVulnerabilities()` to add custom CVEs while keeping the standard vulnerability database, or override `baselineVulnerabilities()` to use an entirely different vulnerability data source. @@ -7974,6 +7488,9 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.kotlin.migrate.RemoveRedundantKotlinStdlib](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/removeredundantkotlinstdlib) * **Remove redundant kotlin-stdlib dependencies** * Remove explicit `kotlin-stdlib`, `kotlin-stdlib-jdk7`, `kotlin-stdlib-jdk8`, and `kotlin-stdlib-common` dependencies. The Kotlin Gradle plugin has automatically included the stdlib since Kotlin 1.4, making explicit declarations redundant. +* [org.openrewrite.kotlin.migrate.RenameKotlinOptionsToCompilerOptions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/renamekotlinoptionstocompileroptions) + * **Rename the `kotlinOptions` block to `compilerOptions`** + * Rename the deprecated `kotlinOptions` DSL block to `compilerOptions` in Gradle build files (Groovy and Kotlin DSL). The `kotlinOptions` DSL was deprecated in Kotlin 2.0 and removed in Kotlin 2.2. Note: in the Kotlin DSL the assignments inside the block must also be modernized for the result to compile; see `UseJvmTargetProviderSyntax` and `UseFreeCompilerArgsAddAll`. * [org.openrewrite.kotlin.migrate.ReplaceDeprecatedAppendln](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacedeprecatedappendln) * **Replace deprecated `appendln` with `appendLine`** * Replace `appendln()` with `appendLine()`. This was deprecated in Kotlin 1.4 and becomes an error in Kotlin 2.1. @@ -7994,7 +7511,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * Replace calls to `Enum.values()` with the `Enum.entries` property. The `entries` property returns an efficient immutable list instead of creating a new array on each call. Deprecated since Kotlin 1.9, recommended replacement for Kotlin 2.x. * [org.openrewrite.kotlin.migrate.ReplaceKotlinOptionsWithCompilerOptions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/replacekotlinoptionswithcompileroptions) * **Replace `kotlinOptions` with `compilerOptions` in Gradle build files** - * Rename the deprecated `kotlinOptions` DSL block to `compilerOptions` in Gradle build files. The `kotlinOptions` DSL was deprecated in Kotlin 2.0 and removed in Kotlin 2.2. + * Migrate the deprecated `kotlinOptions` DSL block to `compilerOptions` in Gradle build files (Groovy and Kotlin DSL). Renames the block and, in the Kotlin DSL, modernizes the assignments inside it to the Provider-style setters (`jvmTarget.set(JvmTarget.JVM_X)`, `freeCompilerArgs.addAll(...)`) so the result compiles against the `compilerOptions` DSL. The `kotlinOptions` DSL was deprecated in Kotlin 2.0 and removed in Kotlin 2.2. * [org.openrewrite.kotlin.migrate.UpgradeKotlinGradlePlugins](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/upgradekotlingradleplugins) * **Upgrade Kotlin Gradle plugins to 2.x** * Upgrade all `org.jetbrains.kotlin.*` Gradle plugins to Kotlin 2.x. This includes the core kotlin-jvm plugin as well as all official Kotlin Gradle plugins such as serialization, Spring, allopen, noarg, JPA, and parcelize. @@ -8010,351 +7527,33 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [org.openrewrite.kotlin.migrate.UpgradeToKotlin2](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/upgradetokotlin2) * **Migrate to Kotlin 2** * Migrate deprecated Kotlin 1.x APIs to their Kotlin 2.x replacements and update Gradle build files for Kotlin 2.x compatibility. Deprecated APIs were deprecated in Kotlin 1.4-1.5 and become errors in Kotlin 2.1. +* [org.openrewrite.kotlin.migrate.UseFreeCompilerArgsAddAll](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/usefreecompilerargsaddall) + * **Use `freeCompilerArgs.addAll(...)` in Kotlin `compilerOptions`** + * In Gradle Kotlin DSL build scripts, replace the legacy `freeCompilerArgs = listOf(...)` assignment inside a `compilerOptions` (or `kotlinOptions`) block with the modern `freeCompilerArgs.addAll(...)`, the idiomatic way to contribute arguments to the `ListProperty`. +* [org.openrewrite.kotlin.migrate.UseJvmTargetProviderSyntax](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/migrate/usejvmtargetprovidersyntax) + * **Use the `jvmTarget` provider syntax in Kotlin `compilerOptions`** + * In Gradle Kotlin DSL build scripts, replace the legacy `jvmTarget = "X"` string assignment inside a `compilerOptions` (or `kotlinOptions`) block with the modern Provider-style `jvmTarget.set(JvmTarget.JVM_X)`, adding the `JvmTarget` import. The string-assignment form does not compile against the `compilerOptions` DSL, where `jvmTarget` is a `Property<JvmTarget>`. * [org.openrewrite.kotlin.replace.ReplaceKotlinMethod](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/kotlin/replace/replacekotlinmethod) * **Replace Kotlin method** * Replaces Kotlin method calls based on `@Deprecated(replaceWith=ReplaceWith(...))` annotations. ### rewrite-migrate-python -* [org.openrewrite.python.codequality.AllBranchesIdentical](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/allbranchesidentical) - * **Remove conditional with identical branches** - * Replace `if`/`elif`/`else` chains where every branch has the same body with just the body, since the condition has no effect on what code executes. -* [org.openrewrite.python.codequality.BooleanChecksNotInverted](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/booleanchecksnotinverted) - * **Boolean checks should not be inverted** - * Replace inverted boolean comparisons like `not (a == b)` with the equivalent direct operator (`a != b`), and remove double negations like `not (not x)`. -* [org.openrewrite.python.codequality.CollapsibleIfStatements](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/collapsibleifstatements) - * **Merge collapsible if statements** - * Combine nested `if` statements that have no `else` branch into a single `if` joined with `and`. -* [org.openrewrite.python.codequality.MergeIdenticalBranches](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/mergeidenticalbranches) - * **Merge consecutive branches with identical bodies** - * Combine consecutive `if`/`elif` branches that have the same body into a single branch with conditions joined by `or`. -* [org.openrewrite.python.codequality.RemoveDuplicateConditions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/removeduplicateconditions) - * **Remove duplicate conditions in if/elif chains** - * Remove `elif` branches whose condition is identical to an earlier branch in the same `if`/`elif` chain, since the duplicate branch is dead code that can never execute. -* [org.openrewrite.python.codequality.RemoveSelfAssignment](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/removeselfassignment) - * **Remove self-assignments** - * Remove statements that assign a variable to itself (`x = x`, `self.x = self.x`), since they have no effect. -* [org.openrewrite.python.codequality.RemoveUnconditionalValueOverwrite](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/removeunconditionalvalueoverwrite) - * **Remove unconditional value overwrites** - * Remove consecutive assignments that write to the same dict key or object attribute, since the first value is immediately overwritten and never used. -* [org.openrewrite.python.codequality.SimplifyBooleanLiteral](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/simplifybooleanliteral) - * **Simplify boolean literal comparisons** - * Replace comparisons against boolean literals (`== True`, `!= False`, `is True`, etc.) with the simpler equivalent boolean expression. -* [org.openrewrite.python.codequality.SimplifyRedundantLogicalExpression](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/codequality/simplifyredundantlogicalexpression) - * **Simplify redundant logical expressions** - * Replace `x and x` with `x` and `x or x` with `x`. Identical operands in a logical expression are redundant and often indicate a copy-paste mistake. * [org.openrewrite.python.migrate.DependencyInsight](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/dependencyinsight) * **Python dependency insight** * Find Python dependencies, including transitive dependencies, matching a package name pattern. Results include the resolved version, scope, and whether the dependency is direct or transitive. -* [org.openrewrite.python.migrate.FindAifcModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findaifcmodule) - * **Find deprecated `aifc` module usage** - * The `aifc` module was deprecated in Python 3.11 and removed in Python 3.13. Use third-party audio libraries instead. -* [org.openrewrite.python.migrate.FindAsyncioCoroutineDecorator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findasynciocoroutinedecorator) - * **Find deprecated `@asyncio.coroutine` decorator** - * Find usage of the deprecated `@asyncio.coroutine` decorator which was removed in Python 3.11. Convert to `async def` syntax with `await` instead of `yield from`. -* [org.openrewrite.python.migrate.FindAudioopModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findaudioopmodule) - * **Find deprecated `audioop` module usage** - * The `audioop` module was deprecated in Python 3.11 and removed in Python 3.13. Use pydub, numpy, or scipy for audio operations. -* [org.openrewrite.python.migrate.FindCgiModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findcgimodule) - * **Find deprecated `cgi` module usage** - * The `cgi` module was deprecated in Python 3.11 and removed in Python 3.13. Use `urllib.parse` for query string parsing, `html.escape()` for escaping, and web frameworks or `email.message` for form handling. -* [org.openrewrite.python.migrate.FindCgitbModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findcgitbmodule) - * **Find deprecated `cgitb` module usage** - * The `cgitb` module was deprecated in Python 3.11 and removed in Python 3.13. Use the standard `logging` and `traceback` modules for error handling. -* [org.openrewrite.python.migrate.FindChunkModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findchunkmodule) - * **Find deprecated `chunk` module usage** - * The `chunk` module was deprecated in Python 3.11 and removed in Python 3.13. Implement IFF chunk reading manually or use specialized libraries. -* [org.openrewrite.python.migrate.FindCryptModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findcryptmodule) - * **Find deprecated `crypt` module usage** - * The `crypt` module was deprecated in Python 3.11 and removed in Python 3.13. Use `bcrypt`, `argon2-cffi`, or `passlib` instead. -* [org.openrewrite.python.migrate.FindDistutilsUsage](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/finddistutilsusage) - * **Find deprecated distutils module usage** - * Find imports of the deprecated `distutils` module which was removed in Python 3.12. Migrate to `setuptools` or other modern build tools. -* [org.openrewrite.python.migrate.FindFunctoolsCmpToKey](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findfunctoolscmptokey) - * **Find `functools.cmp_to_key()` usage** - * Find usage of `functools.cmp_to_key()` which is a Python 2 compatibility function. Consider using a key function directly. * [org.openrewrite.python.migrate.FindFutureImports](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findfutureimports) * **Find `__future__` imports** * Find `__future__` imports and add a search marker. -* [org.openrewrite.python.migrate.FindImghdrModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findimghdrmodule) - * **Find deprecated `imghdr` module usage** - * The `imghdr` module was deprecated in Python 3.11 and removed in Python 3.13. Use `filetype`, `python-magic`, or `Pillow` instead. -* [org.openrewrite.python.migrate.FindImpUsage](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findimpusage) - * **Find deprecated imp module usage** - * Find imports of the deprecated `imp` module which was removed in Python 3.12. Migrate to `importlib`. -* [org.openrewrite.python.migrate.FindLocaleGetdefaultlocale](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findlocalegetdefaultlocale) - * **Find deprecated `locale.getdefaultlocale()` usage** - * `locale.getdefaultlocale()` was deprecated in Python 3.11. Use `locale.setlocale()`, `locale.getlocale()`, or `locale.getpreferredencoding(False)` instead. -* [org.openrewrite.python.migrate.FindMacpathModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findmacpathmodule) - * **Find removed `macpath` module usage** - * The `macpath` module was removed in Python 3.8. Use `os.path` instead. -* [org.openrewrite.python.migrate.FindMailcapModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findmailcapmodule) - * **Find deprecated `mailcap` module usage** - * The `mailcap` module was deprecated in Python 3.11 and removed in Python 3.13. Use `mimetypes` module for MIME type handling. * [org.openrewrite.python.migrate.FindMethods](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findmethods) * **Find Python function and method usages** * Find function and method calls by pattern. Covers standalone functions, class methods, static methods, and constructor calls. -* [org.openrewrite.python.migrate.FindMsilibModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findmsilibmodule) - * **Find deprecated `msilib` module usage** - * The `msilib` module was deprecated in Python 3.11 and removed in Python 3.13. Use platform-specific tools for MSI creation. -* [org.openrewrite.python.migrate.FindNisModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findnismodule) - * **Find deprecated `nis` module usage** - * The `nis` module was deprecated in Python 3.11 and removed in Python 3.13. There is no direct replacement. -* [org.openrewrite.python.migrate.FindNntplibModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findnntplibmodule) - * **Find deprecated `nntplib` module usage** - * The `nntplib` module was deprecated in Python 3.11 and removed in Python 3.13. NNTP is largely obsolete; consider alternatives if needed. -* [org.openrewrite.python.migrate.FindOsPopen](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findospopen) - * **Find deprecated `os.popen()` usage** - * `os.popen()` has been deprecated since Python 3.6. Use `subprocess.run()` or `subprocess.Popen()` instead for better control over process creation and output handling. -* [org.openrewrite.python.migrate.FindOsSpawn](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findosspawn) - * **Find deprecated `os.spawn*()` usage** - * The `os.spawn*()` family of functions are deprecated. Use `subprocess.run()` or `subprocess.Popen()` instead. -* [org.openrewrite.python.migrate.FindOssaudiodevModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findossaudiodevmodule) - * **Find deprecated `ossaudiodev` module usage** - * The `ossaudiodev` module was deprecated in Python 3.11 and removed in Python 3.13. There is no direct replacement. -* [org.openrewrite.python.migrate.FindPathlibLinkTo](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findpathliblinkto) - * **Find deprecated `Path.link_to()` usage** - * Find usage of `Path.link_to()` which was deprecated in Python 3.10 and removed in 3.12. Use `hardlink_to()` instead (note: argument order is reversed). -* [org.openrewrite.python.migrate.FindPipesModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findpipesmodule) - * **Find deprecated `pipes` module usage** - * The `pipes` module was deprecated in Python 3.11 and removed in Python 3.13. Use subprocess with shlex.quote() for shell escaping. -* [org.openrewrite.python.migrate.FindRemovedModules312](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findremovedmodules312) - * **Find modules removed in Python 3.12** - * Find imports of modules that were removed in Python 3.12, including asynchat, asyncore, and smtpd. -* [org.openrewrite.python.migrate.FindShutilRmtreeOnerror](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findshutilrmtreeonerror) - * **Find deprecated `shutil.rmtree(onerror=...)` parameter** - * The `onerror` parameter of `shutil.rmtree()` was deprecated in Python 3.12 in favor of `onexc`. The `onexc` callback receives the exception object directly rather than an exc_info tuple. -* [org.openrewrite.python.migrate.FindSndhdrModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findsndhdrmodule) - * **Find deprecated `sndhdr` module usage** - * The `sndhdr` module was deprecated in Python 3.11 and removed in Python 3.13. Use `filetype` or audio libraries like `pydub` instead. -* [org.openrewrite.python.migrate.FindSocketGetFQDN](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findsocketgetfqdn) - * **Find `socket.getfqdn()` usage** - * Find usage of `socket.getfqdn()` which can be slow and unreliable. Consider using `socket.gethostname()` instead. -* [org.openrewrite.python.migrate.FindSpwdModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findspwdmodule) - * **Find deprecated `spwd` module usage** - * The `spwd` module was deprecated in Python 3.11 and removed in Python 3.13. There is no direct replacement. -* [org.openrewrite.python.migrate.FindSslMatchHostname](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findsslmatchhostname) - * **Find deprecated `ssl.match_hostname()`** - * Find usage of the deprecated `ssl.match_hostname()` function which was removed in Python 3.12. Use `ssl.SSLContext.check_hostname` instead. -* [org.openrewrite.python.migrate.FindSunauModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findsunaumodule) - * **Find deprecated `sunau` module usage** - * The `sunau` module was deprecated in Python 3.11 and removed in Python 3.13. Use `soundfile` or `pydub` instead. -* [org.openrewrite.python.migrate.FindSysCoroutineWrapper](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findsyscoroutinewrapper) - * **Find removed `sys.set_coroutine_wrapper()` / `sys.get_coroutine_wrapper()`** - * `sys.set_coroutine_wrapper()` and `sys.get_coroutine_wrapper()` were deprecated in Python 3.7 and removed in Python 3.8. -* [org.openrewrite.python.migrate.FindTelnetlibModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findtelnetlibmodule) - * **Find deprecated `telnetlib` module usage** - * The `telnetlib` module was deprecated in Python 3.11 and removed in Python 3.13. Consider using `telnetlib3` from PyPI, direct socket usage, or SSH-based alternatives like paramiko. -* [org.openrewrite.python.migrate.FindTempfileMktemp](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findtempfilemktemp) - * **Find deprecated `tempfile.mktemp()` usage** - * Find usage of `tempfile.mktemp()` which is deprecated due to security concerns (race condition). Use `mkstemp()` or `NamedTemporaryFile()` instead. * [org.openrewrite.python.migrate.FindTypes](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findtypes) * **Find Python types** * Find type references by name. Identifies classes matching a type pattern. In Python, all type definitions use the `class` keyword, covering regular classes, abstract base classes, protocols, enums, dataclasses, named tuples, typed dicts, and more. -* [org.openrewrite.python.migrate.FindUrllibParseSplitFunctions](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findurllibparsesplitfunctions) - * **Find deprecated urllib.parse split functions** - * Find usage of deprecated urllib.parse split functions (splithost, splitport, etc.) removed in Python 3.14. Use urlparse() instead. -* [org.openrewrite.python.migrate.FindUrllibParseToBytes](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findurllibparsetobytes) - * **Find deprecated `urllib.parse.to_bytes()` usage** - * Find usage of `urllib.parse.to_bytes()` which was deprecated in Python 3.8 and removed in 3.14. Use str.encode() directly. -* [org.openrewrite.python.migrate.FindUuModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/finduumodule) - * **Find deprecated `uu` module usage** - * The `uu` module was deprecated in Python 3.11 and removed in Python 3.13. Use `base64` module instead for encoding binary data. -* [org.openrewrite.python.migrate.FindXdrlibModule](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/findxdrlibmodule) - * **Find deprecated `xdrlib` module usage** - * The `xdrlib` module was deprecated in Python 3.11 and removed in Python 3.13. Use `struct` module for binary packing/unpacking. -* [org.openrewrite.python.migrate.MigrateAsyncioCoroutine](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/migrateasynciocoroutine) - * **Migrate `@asyncio.coroutine` to `async def`** - * Migrate functions using the deprecated `@asyncio.coroutine` decorator to use `async def` syntax. Also transforms `yield from` to `await`. The decorator was removed in Python 3.11. * [org.openrewrite.python.migrate.MigrateToPyprojectToml](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/migratetopyprojecttoml) * **Migrate to `pyproject.toml`** * Migrate Python projects from `requirements.txt` and/or `setup.cfg` to `pyproject.toml` with `hatchling` build backend. -* [org.openrewrite.python.migrate.RemoveFutureImports](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/removefutureimports) - * **Remove obsolete `__future__` imports** - * Remove `from __future__ import ...` statements for features that are enabled by default in Python 3. -* [org.openrewrite.python.migrate.ReplaceArrayFromstring](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacearrayfromstring) - * **Replace `array.fromstring()` with `array.frombytes()`** - * Replace `fromstring()` with `frombytes()` on array objects. The fromstring() method was deprecated in Python 3.2 and removed in 3.14. -* [org.openrewrite.python.migrate.ReplaceArrayTostring](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacearraytostring) - * **Replace `array.tostring()` with `array.tobytes()`** - * Replace `tostring()` with `tobytes()` on array objects. The tostring() method was deprecated in Python 3.2 and removed in 3.14. -* [org.openrewrite.python.migrate.ReplaceAstBytes](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceastbytes) - * **Replace `ast.Bytes` with `ast.Constant`** - * The `ast.Bytes` node type was deprecated in Python 3.8 and removed in Python 3.14. Replace with `ast.Constant` and check `isinstance(node.value, bytes)`. -* [org.openrewrite.python.migrate.ReplaceAstEllipsis](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceastellipsis) - * **Replace `ast.Ellipsis` with `ast.Constant`** - * The `ast.Ellipsis` node type was deprecated in Python 3.8 and removed in Python 3.14. Replace with `ast.Constant` and check `node.value is ...`. -* [org.openrewrite.python.migrate.ReplaceAstNameConstant](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceastnameconstant) - * **Replace `ast.NameConstant` with `ast.Constant`** - * The `ast.NameConstant` node type was deprecated in Python 3.8 and removed in Python 3.14. Replace with `ast.Constant` and check `node.value in (True, False, None)`. -* [org.openrewrite.python.migrate.ReplaceAstNum](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceastnum) - * **Replace `ast.Num` with `ast.Constant`** - * The `ast.Num` node type was deprecated in Python 3.8 and removed in Python 3.14. Replace with `ast.Constant` and check `isinstance(node.value, (int, float, complex))`. -* [org.openrewrite.python.migrate.ReplaceAstStr](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceaststr) - * **Replace `ast.Str` with `ast.Constant`** - * The `ast.Str` node type was deprecated in Python 3.8 and removed in Python 3.14. Replace with `ast.Constant` and check `isinstance(node.value, str)`. -* [org.openrewrite.python.migrate.ReplaceCalendarConstants](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacecalendarconstants) - * **Replace deprecated calendar constants with uppercase** - * Replace deprecated mixed-case calendar constants like `calendar.January` with their uppercase equivalents like `calendar.JANUARY`. The mixed-case constants were deprecated in Python 3.12. -* [org.openrewrite.python.migrate.ReplaceCgiParseQs](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacecgiparseqs) - * **Replace `cgi.parse_qs()` with `urllib.parse.parse_qs()`** - * `cgi.parse_qs()` was removed in Python 3.8. Use `urllib.parse.parse_qs()` instead. Note: this rewrites call sites but does not manage imports. Use with `ChangeImport` in a composite recipe to update `from` imports. -* [org.openrewrite.python.migrate.ReplaceCgiParseQsl](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacecgiparseqsl) - * **Replace `cgi.parse_qsl()` with `urllib.parse.parse_qsl()`** - * `cgi.parse_qsl()` was removed in Python 3.8. Use `urllib.parse.parse_qsl()` instead. Note: this rewrites call sites but does not manage imports. Use with `ChangeImport` in a composite recipe to update `from` imports. -* [org.openrewrite.python.migrate.ReplaceCollectionsAbcImports](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacecollectionsabcimports) - * **Replace `collections` ABC imports with `collections.abc`** - * Migrate deprecated abstract base class imports from `collections` to `collections.abc`. These imports were deprecated in Python 3.3 and removed in Python 3.10. -* [org.openrewrite.python.migrate.ReplaceConditionNotifyAll](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceconditionnotifyall) - * **Replace `Condition.notifyAll()` with `Condition.notify_all()`** - * Replace `notifyAll()` method calls with `notify_all()`. The camelCase version was deprecated in Python 3.10 and removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceConfigparserReadfp](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceconfigparserreadfp) - * **Replace `ConfigParser.readfp()` with `read_file()`** - * The `ConfigParser.readfp()` method was deprecated in Python 3.2 and removed in Python 3.13. Replace with `read_file()`. -* [org.openrewrite.python.migrate.ReplaceConfigparserSafeConfigParser](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceconfigparsersafeconfigparser) - * **Replace `configparser.SafeConfigParser` with `ConfigParser`** - * The `configparser.SafeConfigParser` class was deprecated in Python 3.2 and removed in Python 3.12. Replace with `configparser.ConfigParser`. -* [org.openrewrite.python.migrate.ReplaceDatetimeUtcFromTimestamp](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacedatetimeutcfromtimestamp) - * **Replace `datetime.utcfromtimestamp()` with `datetime.fromtimestamp(ts, UTC)`** - * The `datetime.utcfromtimestamp()` method is deprecated in Python 3.12. Replace it with `datetime.fromtimestamp(ts, datetime.UTC)` for timezone-aware datetime objects. -* [org.openrewrite.python.migrate.ReplaceDatetimeUtcNow](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacedatetimeutcnow) - * **Replace `datetime.utcnow()` with `datetime.now(UTC)`** - * The `datetime.utcnow()` method is deprecated in Python 3.12. Replace it with `datetime.now(datetime.UTC)` for timezone-aware datetime objects. -* [org.openrewrite.python.migrate.ReplaceDistutilsVersion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacedistutilsversion) - * **Replace deprecated distutils.version usage** - * Detect usage of deprecated `distutils.version.LooseVersion` and `distutils.version.StrictVersion`. These should be migrated to `packaging.version.Version`. Note: Manual migration is required as `packaging.version.Version` is not a drop-in replacement. -* [org.openrewrite.python.migrate.ReplaceElementGetchildren](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceelementgetchildren) - * **Replace `Element.getchildren()` with `list(element)`** - * Replace `getchildren()` with `list(element)` on XML Element objects. Deprecated in Python 3.9. -* [org.openrewrite.python.migrate.ReplaceElementGetiterator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceelementgetiterator) - * **Replace `Element.getiterator()` with `Element.iter()`** - * Replace `getiterator()` with `iter()` on XML Element objects. The getiterator() method was deprecated in Python 3.9. -* [org.openrewrite.python.migrate.ReplaceEventIsSet](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceeventisset) - * **Replace `Event.isSet()` with `Event.is_set()`** - * Replace `isSet()` method calls with `is_set()`. The camelCase version was deprecated in Python 3.10 and removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceGettextDeprecations](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacegettextdeprecations) - * **Replace deprecated gettext l*gettext() functions** - * Replace deprecated gettext functions like `lgettext()` with their modern equivalents like `gettext()`. The l*gettext() functions were removed in Python 3.11. -* [org.openrewrite.python.migrate.ReplaceHtmlParserUnescape](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacehtmlparserunescape) - * **Replace `HTMLParser.unescape()` with `html.unescape()`** - * `HTMLParser.unescape()` was removed in Python 3.9. Use `html.unescape()` instead. -* [org.openrewrite.python.migrate.ReplaceLocaleResetlocale](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacelocaleresetlocale) - * **Replace `locale.resetlocale()` with `locale.setlocale(LC_ALL, '')`** - * The `locale.resetlocale()` function was deprecated in Python 3.11 and removed in Python 3.13. Replace with `locale.setlocale(locale.LC_ALL, '')`. -* [org.openrewrite.python.migrate.ReplacePercentFormatWithFString](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacepercentformatwithfstring) - * **Replace `%` formatting with f-string** - * Replace `"..." % (...)` expressions with f-strings (Python 3.6+). Only converts `%s` and `%r` specifiers where the format string is a literal and the conversion is safe. -* [org.openrewrite.python.migrate.ReplacePkgutilFindLoader](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacepkgutilfindloader) - * **Replace `pkgutil.find_loader()` with `importlib.util.find_spec()`** - * The `pkgutil.find_loader()` function was deprecated in Python 3.12. Replace with `importlib.util.find_spec()`. Note: returns ModuleSpec, use .loader for loader. -* [org.openrewrite.python.migrate.ReplacePkgutilGetLoader](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacepkgutilgetloader) - * **Replace `pkgutil.get_loader()` with `importlib.util.find_spec()`** - * The `pkgutil.get_loader()` function was deprecated in Python 3.12. Replace with `importlib.util.find_spec()`. Note: returns ModuleSpec, use .loader for loader. -* [org.openrewrite.python.migrate.ReplacePlatformPopen](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceplatformpopen) - * **Replace `platform.popen()` with `subprocess.check_output()`** - * `platform.popen()` was removed in Python 3.8. Use `subprocess.check_output(cmd, shell=True)` instead. Note: this rewrites call sites but does not manage imports. -* [org.openrewrite.python.migrate.ReplaceReTemplate](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceretemplate) - * **Replace `re.template()` with `re.compile()` and flag `re.TEMPLATE`/`re.T`** - * `re.template()` was deprecated in Python 3.11 and removed in 3.13. Calls are auto-replaced with `re.compile()`. `re.TEMPLATE`/`re.T` flags have no direct replacement and are flagged for manual review. -* [org.openrewrite.python.migrate.ReplaceStrFormatWithFString](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacestrformatwithfstring) - * **Replace `str.format()` with f-string** - * Replace `"...".format(...)` calls with f-strings (Python 3.6+). Only converts cases where the format string is a literal and the conversion is safe. -* [org.openrewrite.python.migrate.ReplaceSysLastExcInfo](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacesyslastexcinfo) - * **Replace `sys.last_type` / `sys.last_value` / `sys.last_traceback` with `sys.last_exc`** - * `sys.last_type`, `sys.last_value`, and `sys.last_traceback` were deprecated in Python 3.12. Replace them with their `sys.last_exc`-based equivalents: `type(sys.last_exc)`, `sys.last_exc`, and `sys.last_exc.__traceback__` respectively. -* [org.openrewrite.python.migrate.ReplaceTarfileFilemode](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetarfilefilemode) - * **Replace `tarfile.filemode` with `stat.filemode`** - * `tarfile.filemode` was removed in Python 3.8. Use `stat.filemode()` instead. -* [org.openrewrite.python.migrate.ReplaceThreadGetName](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadgetname) - * **Replace `Thread.getName()` with `Thread.name`** - * Replace `getName()` method calls with the `name` property. Deprecated in Python 3.10, removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceThreadIsAlive](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadisalive) - * **Replace `Thread.isAlive()` with `Thread.is_alive()`** - * Replace `isAlive()` method calls with `is_alive()`. Deprecated in Python 3.1 and removed in 3.9. -* [org.openrewrite.python.migrate.ReplaceThreadIsDaemon](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadisdaemon) - * **Replace `Thread.isDaemon()` with `Thread.daemon`** - * Replace `isDaemon()` method calls with the `daemon` property. Deprecated in Python 3.10, removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceThreadSetDaemon](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadsetdaemon) - * **Replace `Thread.setDaemon()` with `Thread.daemon = ...`** - * Replace `setDaemon()` method calls with `daemon` property assignment. Deprecated in Python 3.10, removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceThreadSetName](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadsetname) - * **Replace `Thread.setName()` with `Thread.name = ...`** - * Replace `setName()` method calls with `name` property assignment. Deprecated in Python 3.10, removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceThreadingActiveCount](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadingactivecount) - * **Replace `threading.activeCount()` with `threading.active_count()`** - * Replace `threading.activeCount()` with `threading.active_count()`. The camelCase version was deprecated in Python 3.10 and removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceThreadingCurrentThread](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacethreadingcurrentthread) - * **Replace `threading.currentThread()` with `threading.current_thread()`** - * Replace `threading.currentThread()` with `threading.current_thread()`. The camelCase version was deprecated in Python 3.10 and removed in 3.12. -* [org.openrewrite.python.migrate.ReplaceTypingCallableWithCollectionsAbcCallable](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingcallablewithcollectionsabccallable) - * **Replace `typing.Callable` with `collections.abc.Callable`** - * PEP 585 deprecated `typing.Callable` in Python 3.9. Replace with `collections.abc.Callable` for type annotations. -* [org.openrewrite.python.migrate.ReplaceTypingDictWithDict](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingdictwithdict) - * **Replace `typing.Dict` with `dict`** - * PEP 585 deprecated `typing.Dict` in Python 3.9. Replace with the built-in `dict` type for generic annotations. -* [org.openrewrite.python.migrate.ReplaceTypingListWithList](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypinglistwithlist) - * **Replace `typing.List` with `list`** - * PEP 585 deprecated `typing.List` in Python 3.9. Replace with the built-in `list` type for generic annotations. -* [org.openrewrite.python.migrate.ReplaceTypingOptionalWithUnion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingoptionalwithunion) - * **Replace `typing.Optional[X]` with `X | None`** - * PEP 604 introduced the `|` operator for union types in Python 3.10. Replace `Optional[X]` with the more concise `X | None` syntax. -* [org.openrewrite.python.migrate.ReplaceTypingSetWithSet](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingsetwithset) - * **Replace `typing.Set` with `set`** - * PEP 585 deprecated `typing.Set` in Python 3.9. Replace with the built-in `set` type for generic annotations. -* [org.openrewrite.python.migrate.ReplaceTypingText](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingtext) - * **Replace `typing.Text` with `str`** - * `typing.Text` is deprecated as of Python 3.11. It was an alias for `str` for Python 2/3 compatibility. Replace with `str`. -* [org.openrewrite.python.migrate.ReplaceTypingTupleWithTuple](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingtuplewithtuple) - * **Replace `typing.Tuple` with `tuple`** - * PEP 585 deprecated `typing.Tuple` in Python 3.9. Replace with the built-in `tuple` type for generic annotations. -* [org.openrewrite.python.migrate.ReplaceTypingUnionWithPipe](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replacetypingunionwithpipe) - * **Replace `typing.Union[X, Y]` with `X | Y`** - * PEP 604 introduced the `|` operator for union types in Python 3.10. Replace `Union[X, Y, ...]` with the more concise `X | Y | ...` syntax. -* [org.openrewrite.python.migrate.ReplaceUnittestDeprecatedAliases](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/replaceunittestdeprecatedaliases) - * **Replace deprecated unittest method aliases** - * Replace deprecated unittest.TestCase method aliases like `assertEquals` with their modern equivalents like `assertEqual`. These aliases were removed in Python 3.11/3.12. -* [org.openrewrite.python.migrate.UpgradeToPython310](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython310) - * **Upgrade to Python 3.10** - * Migrate deprecated APIs and adopt new syntax for Python 3.10 compatibility. This includes adopting PEP 604 union type syntax (`X | Y`) and other modernizations between Python 3.9 and 3.10. -* [org.openrewrite.python.migrate.UpgradeToPython311](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython311) - * **Upgrade to Python 3.11** - * Migrate deprecated and removed APIs for Python 3.11 compatibility. This includes handling removed modules, deprecated functions, and API changes between Python 3.10 and 3.11. -* [org.openrewrite.python.migrate.UpgradeToPython312](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython312) - * **Upgrade to Python 3.12** - * Migrate deprecated and removed APIs for Python 3.12 compatibility. This includes detecting usage of the removed `imp` module and other legacy modules that were removed in Python 3.12. -* [org.openrewrite.python.migrate.UpgradeToPython313](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython313) - * **Upgrade to Python 3.13** - * Migrate deprecated and removed APIs for Python 3.13 compatibility. This includes detecting usage of modules removed in PEP 594 ('dead batteries') and other API changes between Python 3.12 and 3.13. -* [org.openrewrite.python.migrate.UpgradeToPython314](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython314) - * **Upgrade to Python 3.14** - * Migrate deprecated and removed APIs for Python 3.14 compatibility. This includes replacing deprecated AST node types with `ast.Constant` and other API changes between Python 3.13 and 3.14. -* [org.openrewrite.python.migrate.UpgradeToPython38](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython38) - * **Upgrade to Python 3.8** - * Migrate deprecated APIs and detect legacy patterns for Python 3.8 compatibility. -* [org.openrewrite.python.migrate.UpgradeToPython39](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/upgradetopython39) - * **Upgrade to Python 3.9** - * Migrate deprecated APIs for Python 3.9 compatibility. This includes PEP 585 built-in generics, removed base64 functions, and deprecated XML Element methods. -* [org.openrewrite.python.migrate.langchain.FindDeprecatedLangchainAgents](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/finddeprecatedlangchainagents) - * **Find deprecated LangChain agent patterns** - * Find usage of deprecated LangChain agent patterns including `initialize_agent`, `AgentExecutor`, and `LLMChain`. These were deprecated in LangChain v0.2 and removed in v1.0. -* [org.openrewrite.python.migrate.langchain.FindLangchainCreateReactAgent](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/findlangchaincreatereactagent) - * **Find `create_react_agent` usage (replace with `create_agent`)** - * Find `from langgraph.prebuilt import create_react_agent` which should be replaced with `from langchain.agents import create_agent` in LangChain v1.0. -* [org.openrewrite.python.migrate.langchain.ReplaceLangchainClassicImports](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/replacelangchainclassicimports) - * **Replace `langchain` legacy imports with `langchain_classic`** - * Migrate legacy chain, retriever, and indexing imports from `langchain` to `langchain_classic`. These were moved in LangChain v1.0. -* [org.openrewrite.python.migrate.langchain.ReplaceLangchainCommunityImports](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/replacelangchaincommunityimports) - * **Replace `langchain` imports with `langchain_community`** - * Migrate third-party integration imports from `langchain` to `langchain_community`. These integrations were moved in LangChain v0.2. -* [org.openrewrite.python.migrate.langchain.ReplaceLangchainProviderImports](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/replacelangchainproviderimports) - * **Replace `langchain_community` imports with provider packages** - * Migrate provider-specific imports from `langchain_community` to dedicated provider packages like `langchain_openai`, `langchain_anthropic`, etc. -* [org.openrewrite.python.migrate.langchain.UpgradeToLangChain02](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/upgradetolangchain02) - * **Upgrade to LangChain 0.2** - * Migrate to LangChain 0.2 by updating imports from `langchain` to `langchain_community` and provider-specific packages. -* [org.openrewrite.python.migrate.langchain.UpgradeToLangChain1](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/migrate/langchain/upgradetolangchain1) - * **Upgrade to LangChain 1.0** - * Migrate to LangChain 1.0 by applying all v0.2 migrations and then moving legacy functionality to `langchain_classic`. ### rewrite-nodejs @@ -8608,270 +7807,6 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * **Find SQL function** * Find SQL functions by name. -### rewrite-static-analysis-python - -* [org.openrewrite.python.cleanup.AssignIfExp](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/assignifexp) - * **Use inline conditional for simple ``if``/``else`` assignment** - * When an ``if``/``else`` pair each assign a single value to the same variable, rewrite as a ternary expression. -* [org.openrewrite.python.cleanup.AugAssign](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/augassign) - * **Shorten assignment to compound operator form** - * Convert ``target = target op value`` into ``target op= value`` for arithmetic operators (+, -, *, /, %). -* [org.openrewrite.python.cleanup.BinOpIdentity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/binopidentity) - * **Collapse self-cancelling `^` / `-` with duplicate operands to `0`** - * When both operands of `^` or `-` are the same expression, reduce to `0` (the self-cancelling identity). -* [org.openrewrite.python.cleanup.BooleanIfExpIdentity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/booleanifexpidentity) - * **Collapse boolean ternary to bare condition** - * Replace ``True if expr else False`` with ``expr`` and ``False if expr else True`` with ``not expr``, removing the redundant ternary wrapper. -* [org.openrewrite.python.cleanup.BreakOrContinueOutsideLoop](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/breakorcontinueoutsideloop) - * **Remove `break`/`continue` outside loop** - * Remove `break` and `continue` statements that are not inside any for or while loop. -* [org.openrewrite.python.cleanup.ChainCompares](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/chaincompares) - * **Use chained comparison syntax** - * Merge two relational tests that share a middle operand into a single chained comparison, e.g. ``0 < idx and idx < size`` becomes ``0 < idx < size``. -* [org.openrewrite.python.cleanup.ClassMethodFirstArgName](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/classmethodfirstargname) - * **Standardize `@classmethod` first parameter to `cls`** - * Ensure that `@classmethod` methods use `cls` as their first parameter, as required by PEP 8, and update all body references. -* [org.openrewrite.python.cleanup.CollectionBuiltinToComprehension](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/collectionbuiltintocomprehension) - * **Use comprehension syntax instead of `list()`/`set()` around generators** - * Wrapping a generator in `list()` or `set()` is less idiomatic than the equivalent bracket/brace comprehension syntax. -* [org.openrewrite.python.cleanup.CollectionIntoSet](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/collectionintoset) - * **Prefer set literals in `in` membership tests** - * When a list or tuple of literals appears on the right side of an `in` test, convert it to a set literal for constant-time lookup. -* [org.openrewrite.python.cleanup.CollectionToBool](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/collectiontobool) - * **Substitute constant collection condition with boolean** - * When a list, tuple, dict, or set literal is used as an ``if`` or ``while`` condition, replace it with ``True`` (non-empty) or ``False`` (empty) to state the intent directly. -* [org.openrewrite.python.cleanup.ComprehensionToGenerator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/comprehensiontogenerator) - * **Use generator expression instead of list comprehension in iterable-accepting calls** - * Functions that consume iterables lazily (e.g. `any`, `sum`, `sorted`) do not need a list comprehension -- a generator expression suffices. -* [org.openrewrite.python.cleanup.ConvertAnyToIn](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/convertanytoin) - * **Rewrite `any(v == literal ...)` as `literal in collection`** - * An `any()` generator that tests equality against a literal value is equivalent to the `in` membership operator, which is clearer. -* [org.openrewrite.python.cleanup.DataframeAppendToConcat](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/dataframeappendtoconcat) - * **Migrate deprecated `.append()` to `pd.concat()`** - * `DataFrame.append()` no longer exists in pandas 2.0+. This recipe rewrites `.append(x)` calls to `pd.concat([df, x])`. -* [org.openrewrite.python.cleanup.DeMorgan](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/demorgan) - * **Flatten negated logic via De Morgan's identities** - * Use De Morgan's identities to remove double negation and to distribute ``not`` into compound conditions, e.g. ``not not finished`` becomes ``finished`` and ``not (m and n)`` becomes ``not m or not n``. -* [org.openrewrite.python.cleanup.DefaultMutableArg](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/defaultmutablearg) - * **Guard mutable default arguments with `None` sentinel** - * Change mutable default values (`[]`, `\{\}`, `set()`) to `None` and prepend an `if arg is None: arg = <original>` guard so each call gets its own fresh instance. -* [org.openrewrite.python.cleanup.DictLiteral](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/dictliteral) - * **Use `\{\}` literal instead of `dict()` constructor** - * Convert no-argument `dict()` calls to the `\{\}` literal, which is more concise and avoids a function call. -* [org.openrewrite.python.cleanup.DoNotUseBareExcept](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/donotusebareexcept) - * **Narrow bare `except:` to `except Exception:`** - * An unqualified `except:` intercepts every exception, including `SystemExit` and `KeyboardInterrupt`. Specifying `Exception` restricts the handler to ordinary runtime errors. -* [org.openrewrite.python.cleanup.EqualityIdentity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/equalityidentity) - * **Fold same-literal `==`/`!=` comparisons to boolean constants** - * When both sides of `==` or `!=` are the same literal, replace the expression with `True` or `False` respectively. -* [org.openrewrite.python.cleanup.FlipComparison](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/flipcomparison) - * **Reorder comparisons to put literals on the right** - * Swap operands when a constant appears on the left of a comparison, e.g. ``42 == count`` becomes ``count == 42``, mirroring the relational operator as needed. -* [org.openrewrite.python.cleanup.IdentityComprehension](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/identitycomprehension) - * **Simplify identity comprehension to `list()`/`set()` call** - * A comprehension that simply passes through each element unchanged is equivalent to calling `list()` or `set()` on the iterable. -* [org.openrewrite.python.cleanup.InstanceMethodFirstArgName](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/instancemethodfirstargname) - * **Standardize instance method first parameter to `self`** - * Ensure instance methods use `self` as their first parameter per PEP 8 and rename all body references. Methods decorated with `@staticmethod` or `@classmethod` are not affected. -* [org.openrewrite.python.cleanup.InvertAnyAll](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/invertanyall) - * **Swap `not all()`/`not any()` by negating the comparison** - * Apply De Morgan's law to replace `not all(cond ...)` with `any(negated_cond ...)` or `not any(cond ...)` with `all(negated_cond ...)`. -* [org.openrewrite.python.cleanup.InvertAnyAllBody](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/invertanyallbody) - * **Apply De Morgan's law to `any(not ...)`/`all(not ...)`** - * When the generator body just negates the loop variable, De Morgan's law lets us eliminate the generator entirely: `any(not v for v in seq)` becomes `not all(seq)`, and the reverse. -* [org.openrewrite.python.cleanup.ListLiteral](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/listliteral) - * **Use `[]` literal instead of `list()` constructor** - * Convert no-argument `list()` calls to the `[]` literal, which is more concise and avoids a function call. -* [org.openrewrite.python.cleanup.MergeComparisons](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/mergecomparisons) - * **Consolidate repeated `==` with `or` into `in`** - * Fold ``var == a or var == b`` into ``var in [a, b]``, reducing duplication and improving readability. -* [org.openrewrite.python.cleanup.MergeElseIfIntoElif](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/mergeelseifintoelif) - * **Convert ``else: if`` to ``elif``** - * When an ``else`` clause contains nothing but an ``if``, rewrite it as ``elif`` to eliminate extra nesting. -* [org.openrewrite.python.cleanup.MergeIsinstance](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/mergeisinstance) - * **Merge `isinstance()` calls** - * Merge `isinstance(x, A) or isinstance(x, B)` into `isinstance(x, (A, B))` for cleaner type checking. -* [org.openrewrite.python.cleanup.MergeNestedIfs](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/mergenestedifs) - * **Collapse nested ``if`` into a single ``and`` condition** - * When two ``if`` statements are nested with no ``else`` on either, join their conditions with ``and`` and flatten the body. -* [org.openrewrite.python.cleanup.NoneCompare](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/nonecompare) - * **Compare to `None` with identity operators (`is` / `is not`)** - * Switch `== None` to `is None` and `!= None` to `is not None`, following PEP 8 singleton comparison guidance. -* [org.openrewrite.python.cleanup.OrIfExpIdentity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/orifexpidentity) - * **Replace self-referencing ternary with `or`** - * When a ternary's condition and true-branch name the same variable, rewrite ``val if val else fallback`` as ``val or fallback`` to avoid repeating the name. -* [org.openrewrite.python.cleanup.PandasAvoidInplace](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/pandasavoidinplace) - * **Eliminate `inplace=True` in favor of reassignment** - * Convert pandas operations that use `inplace=True` into reassignment form, e.g. `df.drop_duplicates(inplace=True)` becomes `df = df.drop_duplicates()`. -* [org.openrewrite.python.cleanup.PythonBestPractices](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/pythonbestpractices) - * **Python cleanup suite** - * Run every Python cleanup recipe in one pass -- literal simplification, boolean and comparison tidying, dead code removal, naming fixes, pandas modernization, and more. -* [org.openrewrite.python.cleanup.RaiseFromPreviousError](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/raisefrompreviouserror) - * **Chain exceptions with `raise ... from` in except blocks** - * Raise statements inside except blocks should use `from` to chain the new exception to the caught one, preserving the full traceback. -* [org.openrewrite.python.cleanup.RemoveAssertTrue](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeasserttrue) - * **Delete no-op `assert True` statements** - * Delete bare `assert True` statements, which are always satisfied and have no effect. Assertions that carry a message string are preserved. -* [org.openrewrite.python.cleanup.RemoveDictKeys](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removedictkeys) - * **Drop redundant `.keys()` on dict iteration** - * Dictionaries iterate over their keys by default, making explicit `.keys()` calls unnecessary in for-loops and `in` expressions. -* [org.openrewrite.python.cleanup.RemoveDuplicateDictKey](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeduplicatedictkey) - * **Deduplicate repeated keys in dict literals** - * When a dict literal contains the same key more than once, only the final value survives at runtime. This removes the shadowed entries. -* [org.openrewrite.python.cleanup.RemoveDuplicateSetKey](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeduplicatesetkey) - * **Deduplicate repeated elements in set literals** - * Set literals with repeated values have redundant entries that are discarded at runtime. This removes the duplicates, keeping the last one. -* [org.openrewrite.python.cleanup.RemoveEmptyNestedBlock](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeemptynestedblock) - * **Delete `if` blocks whose body is only `pass`** - * Delete `if` statements that contain nothing but `pass` and have no `else` branch. `for`/`while` loops are left alone because iterating may have side effects. -* [org.openrewrite.python.cleanup.RemoveNoneFromDefaultGet](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removenonefromdefaultget) - * **Remove redundant `None` default from `dict.get()`** - * Remove redundant `None` default argument from `dict.get()` calls since `None` is already the default return value. -* [org.openrewrite.python.cleanup.RemovePassBody](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removepassbody) - * **Drop ``pass``-only ``if`` body by inverting the guard** - * When an ``if`` body contains only ``pass`` and is followed by an ``else``, flip the condition and use the else body directly. -* [org.openrewrite.python.cleanup.RemovePassElif](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removepasselif) - * **Drop ``pass``-only ``elif`` by negating its condition** - * When an ``elif`` body is only ``pass`` and an ``else`` follows, invert the ``elif`` condition and absorb the else body. -* [org.openrewrite.python.cleanup.RemoveRedundantBoolean](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantboolean) - * **Eliminate boolean literal from `and`/`or`** - * Strip ``True`` or ``False`` from ``and``/``or`` expressions where the literal has no effect on the result, e.g. ``True and val`` reduces to ``val`` and ``False and val`` reduces to ``False``. -* [org.openrewrite.python.cleanup.RemoveRedundantCondition](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantcondition) - * **Remove redundant ternary condition** - * When both branches of a ternary expression are identical, simplify `y if z else y` to `y`. -* [org.openrewrite.python.cleanup.RemoveRedundantConstructorInDictUnion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantconstructorindictunion) - * **Unwrap unnecessary `dict()` from union operands** - * The `|` operator already produces a fresh dict, so wrapping an operand in `dict()` is redundant and can be removed. -* [org.openrewrite.python.cleanup.RemoveRedundantContinue](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantcontinue) - * **Strip trailing ``continue`` from loop body** - * Strip ``continue`` when it is the final statement in a loop body, since the loop naturally advances to the next iteration. -* [org.openrewrite.python.cleanup.RemoveRedundantFstring](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantfstring) - * **Drop ``f`` prefix from strings without placeholders** - * When an f-string has no ``\{...\}`` expressions, strip the ``f`` prefix and convert it to an ordinary string literal. -* [org.openrewrite.python.cleanup.RemoveRedundantIf](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantif) - * **Simplify negated ``elif`` to ``else``** - * When an ``elif`` condition is the exact negation of the preceding ``if``, replace it with ``else`` since the test is redundant. -* [org.openrewrite.python.cleanup.RemoveRedundantPass](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantpass) - * **Delete unnecessary ``pass`` in non-empty blocks** - * Delete ``pass`` when the enclosing block already contains other statements; ``pass`` is only useful as a placeholder in empty blocks. -* [org.openrewrite.python.cleanup.RemoveRedundantPathExists](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantpathexists) - * **Drop ``exists()`` check before ``is_dir()``/``is_file()``** - * Drop ``path.exists()`` when it is ``and``-ed with ``is_dir()`` or ``is_file()``, which inherently return ``False`` for missing paths. -* [org.openrewrite.python.cleanup.RemoveRedundantSliceIndex](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeredundantsliceindex) - * **Drop default-value slice boundaries** - * Omit slice start/stop when they equal ``0`` and ``len(seq)`` respectively, e.g. ``data[0:len(data)]`` becomes ``data[:]``. -* [org.openrewrite.python.cleanup.RemoveStrFromFstring](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removestrfromfstring) - * **Strip ``str()`` from f-string placeholders** - * F-string placeholders convert values to strings automatically, so wrapping expressions in ``str()`` inside ``\{...\}`` is redundant. -* [org.openrewrite.python.cleanup.RemoveStrFromPrint](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removestrfromprint) - * **Unwrap ``str()`` from ``print()`` arguments** - * ``print()`` automatically converts its arguments to strings, so an explicit ``str()`` wrapper is unnecessary and can be removed. -* [org.openrewrite.python.cleanup.RemoveUnitStepFromRange](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeunitstepfromrange) - * **Drop unnecessary step `1` argument from `range()`** - * Shorten `range(a, b, 1)` to `range(a, b)` because `range` already defaults to a step of one. -* [org.openrewrite.python.cleanup.RemoveUnnecessaryElse](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeunnecessaryelse) - * **Drop ``else`` after early-exit ``if`` branch** - * When the ``if`` body always exits via return, raise, continue, or break, remove the ``else`` and dedent its contents. -* [org.openrewrite.python.cleanup.RemoveUnreachableCode](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removeunreachablecode) - * **Strip dead code after terminal statements** - * Delete statements that follow a `return`, `raise`, `continue`, or `break` in the same block, since they can never execute. -* [org.openrewrite.python.cleanup.RemoveZeroFromRange](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/removezerofromrange) - * **Drop unnecessary `0` start argument from `range()`** - * Shorten `range(0, n)` to `range(n)` because `range` already defaults to starting at zero. -* [org.openrewrite.python.cleanup.ReplaceApplyWithMethodCall](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/replaceapplywithmethodcall) - * **Convert `apply('name')` to a direct method invocation** - * When `apply()` receives a string literal like `'sum'` or `'mean'`, rewrite the call as a direct method invocation on the object. -* [org.openrewrite.python.cleanup.ReturnOrYieldOutsideFunction](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/returnoryieldoutsidefunction) - * **Remove `return`/`yield` outside function** - * Remove `return` and `yield` statements that are not inside any function or method definition. -* [org.openrewrite.python.cleanup.SimplifyBooleanComparison](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifybooleancomparison) - * **Remove explicit True/False comparisons** - * Drop unnecessary ``== True``, ``!= False``, and similar tests against boolean literals, leaving just the expression or ``not expr``. -* [org.openrewrite.python.cleanup.SimplifyConstantSum](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifyconstantsum) - * **Simplify `sum(1 for x in items if cond)` to `sum(bool(cond) for x in items)`** - * Replace `sum(1 for x in items if cond)` with `sum(bool(cond) for x in items)` by moving the filter condition into a `bool()` wrapper. -* [org.openrewrite.python.cleanup.SimplifyDictionaryUpdate](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifydictionaryupdate) - * **Convert one-item `dict.update()` to bracket assignment** - * When `.update()` receives a dictionary literal containing exactly one key, rewrite it as a direct key assignment for clarity and efficiency. -* [org.openrewrite.python.cleanup.SimplifyDivision](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifydivision) - * **Convert `int(a / b)` to floor division** - * Replace ``int(a / b)`` with Python's floor-division operator ``a // b`` for a more concise expression. -* [org.openrewrite.python.cleanup.SimplifyEmptyCollectionComparison](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifyemptycollectioncomparison) - * **Use truthiness instead of empty-container equality** - * Convert ``== ""``/``== []``/``== \{\}``/``== ()`` into ``not var`` and the corresponding ``!=`` forms into ``var``, relying on Python's truthiness semantics for empty collections. -* [org.openrewrite.python.cleanup.SimplifyFstringFormatting](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifyfstringformatting) - * **Fold constants and flatten nested f-strings** - * Inline constant values directly into f-string text and unwrap nested f-strings into their enclosing string. -* [org.openrewrite.python.cleanup.SimplifyGenerator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifygenerator) - * **Pass iterable directly to `any()`/`all()` instead of identity generator** - * An identity generator that yields every element unchanged is redundant inside `any()` or `all()` -- pass the collection directly. -* [org.openrewrite.python.cleanup.SimplifyLenComparison](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifylencomparison) - * **Replace `len()` emptiness check with truthiness** - * Rewrite ``len(seq) > 0`` / ``len(seq) != 0`` to ``seq`` and ``len(seq) == 0`` to ``not seq``, leveraging Python's built-in truthiness for collections. -* [org.openrewrite.python.cleanup.SimplifyNegativeIndex](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifynegativeindex) - * **Use negative index instead of `len()` offset** - * Rewrite ``seq[len(seq) - k]`` as ``seq[-k]``, using Python's native negative-indexing support. -* [org.openrewrite.python.cleanup.SimplifySingleExceptionTuple](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifysingleexceptiontuple) - * **Unwrap one-element exception tuple in `except`** - * A tuple containing only one exception type is needlessly verbose. This unwraps it to the plain `except ExcType:` form. -* [org.openrewrite.python.cleanup.SimplifyStrLenComparison](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifystrlencomparison) - * **Compare string to `""` instead of checking `len()`** - * Replace ``len(text) == 0`` with ``text == ""`` and ``len(text) > 0`` / ``len(text) != 0`` with ``text != ""``, comparing the string directly rather than measuring its length. -* [org.openrewrite.python.cleanup.SimplifySubstringSearch](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/simplifysubstringsearch) - * **Replace `.find()` check with `in` / `not in`** - * Rewrite ``.find()`` return-value checks as membership tests: ``text.find(sub) == -1`` becomes ``sub not in text`` and ``text.find(sub) != -1`` becomes ``sub in text``. -* [org.openrewrite.python.cleanup.SquareIdentity](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/squareidentity) - * **Rewrite self-multiplication as `** 2`** - * When an expression is multiplied by itself, rewrite it using the exponentiation operator (`** 2`) for clarity. -* [org.openrewrite.python.cleanup.StrPrefixSuffix](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/strprefixsuffix) - * **Prefer ``startswith``/``endswith`` over slice comparison** - * Rewrite ``s[:N] == "lit"`` as ``s.startswith("lit")`` and ``s[-N:] == "lit"`` as ``s.endswith("lit")`` when the slice length equals the literal length. -* [org.openrewrite.python.cleanup.SwapIfElseBranches](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/swapifelsebranches) - * **Flip empty ``if``-body by negating the condition** - * When the ``if`` branch is just ``pass`` and an ``else`` exists, invert the test and promote the else body to the if body. -* [org.openrewrite.python.cleanup.SwapIfExpression](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/swapifexpression) - * **Swap ternary branches to drop negated condition** - * Flip the branches of a conditional expression whose test uses ``not``, eliminating the negation for clearer intent. -* [org.openrewrite.python.cleanup.SwapVariable](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/swapvariable) - * **Simplify temp-variable swap to tuple unpacking** - * Detect the three-line swap idiom (`tmp = x; x = y; y = tmp`) and condense it into `x, y = y, x` using tuple unpacking. -* [org.openrewrite.python.cleanup.TernaryToIfExpression](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/ternarytoifexpression) - * **Convert `and`/`or` ternary trick to conditional expression** - * Rewrite the legacy `cond and val or fallback` idiom as `val if cond else fallback` to avoid silent bugs when `val` is falsy. -* [org.openrewrite.python.cleanup.TupleLiteral](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/tupleliteral) - * **Use `()` literal instead of `tuple()` constructor** - * Convert no-argument `tuple()` calls to the `()` literal, which is more concise and avoids a function call. -* [org.openrewrite.python.cleanup.UnwrapIterableConstruction](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/unwrapiterableconstruction) - * **Flatten redundant collection constructor wrapping a literal** - * When `tuple()`, `list()`, or `set()` wraps a single list or tuple literal, remove the constructor and use the target literal form directly. -* [org.openrewrite.python.cleanup.UseContextlibSuppress](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/usecontextlibsuppress) - * **Replace `try/except: pass` with `contextlib.suppress()`** - * When an except handler only contains `pass`, the intent is to suppress the error. `contextlib.suppress()` states this explicitly and eliminates the try/except boilerplate. -* [org.openrewrite.python.cleanup.UseDatetimeNowNotToday](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/usedatetimenownottoday) - * **Use `datetime.now()` instead of `datetime.today()`** - * Replace `datetime.today()` with `datetime.now()`. Both are equivalent, but `now()` is more explicit and supports timezone arguments. -* [org.openrewrite.python.cleanup.UseDictionaryUnion](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/usedictionaryunion) - * **Use dict union operator instead of double-star unpacking** - * Dict literals made up entirely of `**` unpacking can be rewritten with the `|` union operator available since Python 3.9. -* [org.openrewrite.python.cleanup.UseFileIterator](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/usefileiterator) - * **Iterate over file objects directly, not via `readlines()`** - * File objects are iterable and yield lines on demand, so calling `.readlines()` to build an intermediate list is unnecessary. -* [org.openrewrite.python.cleanup.UseGetitemForReMatchGroups](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/usegetitemforrematchgroups) - * **Use bracket access for ``re.Match`` groups** - * Replace ``match.group(n)`` with ``match[n]`` to use the shorter subscript syntax available since Python 3.6. -* [org.openrewrite.python.cleanup.UseIsna](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/useisna) - * **Use `.isna()` instead of `== np.nan` comparisons** - * Rewrite `== np.nan` and `== numpy.nan` equality tests as `.isna()` calls, since direct NaN comparison always evaluates to False. -* [org.openrewrite.python.cleanup.UseStringRemoveAffix](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/usestringremoveaffix) - * **Replace string slicing with `removeprefix`/`removesuffix`** - * Replace `if text.startswith(s): text = text[N:]` with `text = text.removeprefix(s)` and the equivalent `endswith` pattern with `removesuffix` (Python 3.9+). -* [org.openrewrite.python.cleanup.UselessElseOnLoop](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/uselesselseonloop) - * **Flatten `for/else` when the loop has no `break`** - * A `for/else` where the loop body never breaks is misleading -- the `else` runs every time. This moves the else body after the loop. -* [org.openrewrite.python.cleanup.YieldFrom](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/python/cleanup/yieldfrom) - * **Collapse for-yield loop into `yield from`** - * A for-loop that does nothing but yield the loop variable can be expressed as `yield from`, which is shorter and delegates directly. - ### rewrite-struts * [org.openrewrite.java.struts.MigrateStrutsDtd](https://docs.moderne.io/user-documentation/recipes/recipe-catalog/java/struts/migratestrutsdtd) diff --git a/docs/reference/recipes-by-tag.md b/docs/reference/recipes-by-tag.md index 652e0b24ef..5b0ee8608f 100644 --- a/docs/reference/recipes-by-tag.md +++ b/docs/reference/recipes-by-tag.md @@ -47,7 +47,7 @@ _4 recipes_ * Migrates `astral-sh/setup-uv` from v6 to v7. Updates the action version and removes the deprecated `server-url` input. See the [v7.0.0 release notes](https://github.com/astral-sh/setup-uv/releases/tag/v7.0.0) for breaking changes. * [org.openrewrite.github.MigrateTibdexGitHubAppTokenToActions](/recipes/github/migratetibdexgithubapptokentoactions.md) * **Migrate from tibdex/github-app-token to actions/create-github-app-token** - * Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case. + * Migrates from the deprecated `tibdex/github-app-token@v2` to `actions/create-github-app-token@v3`, which runs on Node.js 24 instead of the deprecated Node.js 20. Renames the `app_id`, `private_key`, and `github_api_url` inputs to their kebab-case equivalents `app-id`, `private-key`, and `github-api-url`. * [org.openrewrite.github.security.PinGitHubActionsToSha](/recipes/github/security/pingithubactionstosha.md) * **Pin GitHub Actions to commit SHAs** * Replaces mutable tag or branch references in GitHub Actions `uses:` declarations with immutable commit SHAs. A static mapping of well-known actions is checked first; if the action is not found, the GitHub API is used to resolve the reference at recipe run time. By default only third-party actions are pinned; set `pinOfficialActions` to include actions from the `actions` and `github` organizations. To pin only a specific allow-list of actions, set `includedActions`. @@ -2444,7 +2444,7 @@ _14 recipes_ * Migrates `astral-sh/setup-uv` from v6 to v7. Updates the action version and removes the deprecated `server-url` input. See the [v7.0.0 release notes](https://github.com/astral-sh/setup-uv/releases/tag/v7.0.0) for breaking changes. * [org.openrewrite.github.MigrateTibdexGitHubAppTokenToActions](/recipes/github/migratetibdexgithubapptokentoactions.md) * **Migrate from tibdex/github-app-token to actions/create-github-app-token** - * Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case. + * Migrates from the deprecated `tibdex/github-app-token@v2` to `actions/create-github-app-token@v3`, which runs on Node.js 24 instead of the deprecated Node.js 20. Renames the `app_id`, `private_key`, and `github_api_url` inputs to their kebab-case equivalents `app-id`, `private-key`, and `github-api-url`. * [org.openrewrite.github.ReplaceOssrhSecretsWithSonatype](/recipes/github/replaceossrhsecretswithsonatype.md) * **Replace OSSRH secrets with Sonatype secrets** * Replace deprecated OSSRH_S01 secrets with new Sonatype secrets in GitHub Actions workflows. This is an example use of the `ReplaceSecrets` and `ReplaceSecretKeys` recipes combined used to update the Maven publishing secrets in OpenRewrite's GitHub organization. @@ -2812,7 +2812,7 @@ _1 recipe_ ## jackson -_30 recipes_ +_33 recipes_ * [org.openrewrite.java.jackson.AddJsonCreatorToPrivateConstructors](/recipes/java/jackson/addjsoncreatortoprivateconstructors.md) * **Add `@JsonCreator` to non-public constructors** @@ -2842,6 +2842,10 @@ _30 recipes_ * **Jackson best practices** * Apply best practices for using Jackson library, including upgrade to Jackson 2.x and removing redundant annotations. * Tags: jackson-2 +* [org.openrewrite.java.jackson.MigrateFactorySettersToBuilder](/recipes/java/jackson/migratefactorysetterstobuilder.md) + * **Migrate factory setter calls to builder pattern** + * In Jackson 3, `JsonFactory` is immutable and `new JsonFactory()` is no longer the right entry point: the concrete factory lives at `tools.jackson.core.json.JsonFactory` and is constructed via `JsonFactory.builder()...build()`. Configuration methods like `enable`, `disable`, `configure`, `setCharacterEscapes`, etc. must be called on the builder instead. This recipe migrates setter calls to the builder pattern when safe, or adds TODO comments when automatic migration is not possible. + * Tags: jackson-3 * [org.openrewrite.java.jackson.MigrateMapperSettersToBuilder](/recipes/java/jackson/migratemappersetterstobuilder.md) * **Migrate mapper setter calls to builder pattern** * In Jackson 3, `JsonMapper` and other format-aligned mappers are immutable. Configuration methods like `setFilterProvider`, `addMixIn`, `disable`, `enable`, etc. must be called on the builder instead. This recipe migrates setter calls to the builder pattern when safe, or adds TODO comments when automatic migration is not possible. @@ -2910,6 +2914,10 @@ _30 recipes_ * **Rename Jackson 2.x methods to 3.x equivalents** * Rename Jackson methods that were renamed in 3.x (e.g., `writeObject()` to `writePOJO()`, `getCurrentValue()` to `currentValue()`). * Tags: jackson-3 +* [org.openrewrite.java.jackson.UpgradeJackson_2_3_ModernizeJacksonCoreFeatures](/recipes/java/jackson/upgradejackson_2_3_modernizejacksoncorefeatures.md) + * **Modernize legacy `jackson-core` feature constants** + * Jackson 2.10 moved most flag constants out of `JsonParser.Feature` and `JsonGenerator.Feature` into the new `JsonReadFeature` / `JsonWriteFeature` (for JSON-specific flags) and `StreamReadFeature` / `StreamWriteFeature` (for format-agnostic flags). Jackson 3 keeps only the modern locations. This recipe rewrites every legacy constant to its Jackson 2-modern equivalent so the rest of the Jackson 2 → 3 pipeline (in particular the builder migrations) sees flags the modern API will accept. + * Tags: jackson-3 * [org.openrewrite.java.jackson.UpgradeJackson_2_3_ObjectNodeMethodRenames](/recipes/java/jackson/upgradejackson_2_3_objectnodemethodrenames.md) * **Rename Jackson 2.x methods to 3.x equivalents for ObjectNode** * Rename ObjectNode methods deprecated in Jackson 2 and removed in 3.x (`put(String, JsonNode)` to `set`, `putAll` to `setAll`). @@ -2930,6 +2938,10 @@ _30 recipes_ * **Update Jackson 2.x types to 3.x** * Update Jackson type names including exception types and core class renames. * Tags: jackson-3 +* [org.openrewrite.java.jackson.UseJsonFactoryStaticBuilder](/recipes/java/jackson/usejsonfactorystaticbuilder.md) + * **Use `JsonFactory.builder()` over `new JsonFactoryBuilder()`** + * After the Jackson 2 → 3 migration, prefer the concrete static `JsonFactory.builder()` entry over `new JsonFactoryBuilder()` so `JsonFactory` chains read the same way as the format-aligned factories (`YAMLFactory.builder()`, `CBORFactory.builder()`, etc.). The reason `MigrateFactorySettersToBuilder` emits `new JsonFactoryBuilder()` in the first place is a Jackson 2 quirk — `JsonFactory.builder()` returned the wildcard `TSFBuilder<?, ?>` there. In Jackson 3 the static returns a concretely-typed `JsonFactoryBuilder`, so the constructor form no longer earns its keep. + * Tags: jackson-3 * [org.openrewrite.java.jackson.UseModernDateTimeSerialization](/recipes/java/jackson/usemoderndatetimeserialization.md) * **Use modern date/time serialization defaults** * Remove redundant `@JsonFormat` annotations on `java.time` types that specify ISO-8601 patterns, as Jackson 3 uses ISO-8601 as the default format (with `WRITE_DATES_AS_TIMESTAMPS` now disabled by default). @@ -4900,7 +4912,7 @@ _28 recipes_ ## mockito -_7 recipes_ +_8 recipes_ * [org.openrewrite.java.testing.junit5.UseMockitoExtension](/recipes/java/testing/junit5/usemockitoextension.md) * **Use Mockito JUnit Jupiter extension** @@ -4920,6 +4932,9 @@ _7 recipes_ * [org.openrewrite.java.testing.mockito.MockitoBestPractices](/recipes/java/testing/mockito/mockitobestpractices.md) * **Mockito best practices** * Applies best practices for Mockito tests. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxToJavaReflection](/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md) + * **Replace PowerMock `Whitebox` with Java reflection** + * Replace `org.powermock.reflect.Whitebox` calls (`setInternalState`, `getInternalState`, `invokeMethod`) with plain Java reflection using `java.lang.reflect.Field` and `java.lang.reflect.Method`. * [org.openrewrite.java.testing.mockito.ReplacePowerMockito](/recipes/java/testing/mockito/replacepowermockito.md) * **Replace PowerMock with raw Mockito** * PowerMockito with raw Mockito; best executed as part of a Mockito upgrade. @@ -8114,7 +8129,7 @@ _5 recipes_ ## testing -_52 recipes_ +_53 recipes_ * [org.openrewrite.cucumber.jvm.CucumberJava8ToJava](/recipes/cucumber/jvm/cucumberjava8tojava.md) * **Migrate `cucumber-java8` to `cucumber-java`** @@ -8257,6 +8272,9 @@ _52 recipes_ * [org.openrewrite.java.testing.mockito.MockitoBestPractices](/recipes/java/testing/mockito/mockitobestpractices.md) * **Mockito best practices** * Applies best practices for Mockito tests. +* [org.openrewrite.java.testing.mockito.PowerMockWhiteboxToJavaReflection](/recipes/java/testing/mockito/powermockwhiteboxtojavareflection.md) + * **Replace PowerMock `Whitebox` with Java reflection** + * Replace `org.powermock.reflect.Whitebox` calls (`setInternalState`, `getInternalState`, `invokeMethod`) with plain Java reflection using `java.lang.reflect.Field` and `java.lang.reflect.Method`. * [org.openrewrite.java.testing.mockito.ReplacePowerMockito](/recipes/java/testing/mockito/replacepowermockito.md) * **Replace PowerMock with raw Mockito** * PowerMockito with raw Mockito; best executed as part of a Mockito upgrade. diff --git a/docs/reference/scanning-recipes.md b/docs/reference/scanning-recipes.md index 034413869e..8cbd796897 100644 --- a/docs/reference/scanning-recipes.md +++ b/docs/reference/scanning-recipes.md @@ -413,7 +413,7 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * Updates .gitignore to allow committing the `.moderne/context/` directory while ignoring other files in `.moderne/`. Only modifies .gitignore when context files exist in `.moderne/context/`. Transforms `.moderne/` into `.moderne/*` with an exception for `!.moderne/context/`. * [org.openrewrite.prethink.calm.GenerateCalmArchitecture](/recipes/prethink/calm/generatecalmarchitecture.md) * **Generate CALM architecture** - * Generate a FINOS CALM (Common Architecture Language Model) JSON file from discovered service endpoints, database connections, external service calls, and messaging connections. + * Generate a FINOS CALM (Common Architecture Language Model) JSON file from discovered service endpoints, database connections, external service calls, and messaging connections. This recipe is not meant to be run on its own. It only reads data tables that other Prethink discovery recipes populate first, so it produces nothing useful in isolation. Run it as part of a composite such as `org.openrewrite.prethink.UpdatePrethinkContext`. ### rewrite-rewrite diff --git a/docs/reference/standalone-recipes.md b/docs/reference/standalone-recipes.md index da3be590f5..6f8f015e31 100644 --- a/docs/reference/standalone-recipes.md +++ b/docs/reference/standalone-recipes.md @@ -6,7 +6,7 @@ description: An autogenerated list of recipes that are not included in any compo _This doc contains recipes that are not included as part of any larger composite recipe. These recipes can be run independently and are not bundled with other recipes._ -Total standalone recipes: 971 +Total standalone recipes: 968 ## org.openrewrite @@ -284,9 +284,6 @@ Total standalone recipes: 971 * [org.openrewrite.java.RemoveObjectsIsNull](/recipes/java/removeobjectsisnull.md) * **Transform calls to `Objects.isNull(..)` and `Objects.nonNull(..)`** * Replace calls to `Objects.isNull(..)` and `Objects.nonNull(..)` with a simple null check. Using these methods outside of stream predicates is not idiomatic. -* [org.openrewrite.java.ReplaceConstant](/recipes/java/replaceconstant.md) - * **Replace constant with literal value** - * Replace a named constant with a literal value when you wish to remove the old constant. A `String` literal must include escaped quotes. * [org.openrewrite.java.UpdateSourcePositions](/recipes/java/updatesourcepositions.md) * **Update source positions** * Calculate start position and length for every LST element. @@ -407,18 +404,9 @@ Total standalone recipes: 971 ### rewrite-javascript -* [org.openrewrite.javascript.AddDependency](/recipes/javascript/adddependency.md) - * **Add npm dependency** - * Add an npm dependency to `package.json` and regenerate the lock file by running the package manager. If the dependency already exists in any scope, the recipe is a no-op. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. * [org.openrewrite.javascript.ChangeDependency](/recipes/javascript/changedependency.md) * **Change npm dependency** * Renames an npm dependency in `package.json` and optionally updates its version constraint. After modifying the package.json, the lock file is regenerated by running the package manager. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. -* [org.openrewrite.javascript.RemoveDependency](/recipes/javascript/removedependency.md) - * **Remove npm dependency** - * Remove an npm dependency from `package.json` and regenerate the lock file. If the dependency does not exist in any scope, the recipe is a no-op. -* [org.openrewrite.javascript.UpgradeDependencyVersion](/recipes/javascript/upgradedependencyversion.md) - * **Upgrade npm dependency version** - * Upgrades the version constraint of matching npm dependencies in `package.json` and regenerates the lock file by running the package manager. Matching is by exact package name or glob pattern. v1 uses simple string inequality for the upgrade check (always overwrites). A future version will use semver to skip already-up-to-date constraints. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. * [org.openrewrite.javascript.UpgradeTransitiveDependencyVersion](/recipes/javascript/upgradetransitivedependencyversion.md) * **Upgrade transitive npm dependency** * Pins or upgrades a transitive npm dependency by adding an override entry to `package.json` and regenerating the lock file. For npm and Bun, adds to the `overrides` field; for Yarn, adds to `resolutions`; for pnpm, adds to `pnpm.overrides`. The override is idempotent — if the entry already exists with the same version, no change is made. Not safe to use as a precondition: invokes the package manager and publishes per-project state shared with other dependency recipes. @@ -2242,7 +2230,7 @@ Total standalone recipes: 971 * Migrates `astral-sh/setup-uv` from v6 to v7. Updates the action version and removes the deprecated `server-url` input. See the [v7.0.0 release notes](https://github.com/astral-sh/setup-uv/releases/tag/v7.0.0) for breaking changes. * [org.openrewrite.github.MigrateTibdexGitHubAppTokenToActions](/recipes/github/migratetibdexgithubapptokentoactions.md) * **Migrate from tibdex/github-app-token to actions/create-github-app-token** - * Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case. + * Migrates from the deprecated `tibdex/github-app-token@v2` to `actions/create-github-app-token@v3`, which runs on Node.js 24 instead of the deprecated Node.js 20. Renames the `app_id`, `private_key`, and `github_api_url` inputs to their kebab-case equivalents `app-id`, `private-key`, and `github-api-url`. * [org.openrewrite.github.RemoveAllCronTriggers](/recipes/github/removeallcrontriggers.md) * **Remove all cron triggers** * Removes all cron triggers from a workflow. @@ -2510,6 +2498,9 @@ Total standalone recipes: 971 * [org.openrewrite.java.migrate.AddSuppressionForIllegalReflectionWarningsPlugin](/recipes/java/migrate/addsuppressionforillegalreflectionwarningsplugin.md) * **Add maven jar plugin to suppress illegal reflection warnings** * Adds a maven jar plugin that's configured to suppress Illegal Reflection Warnings. +* [org.openrewrite.java.migrate.AddSurefireFailsafeArgLine](/recipes/java/migrate/addsurefirefailsafeargline.md) + * **Add `argLine` to surefire and failsafe plugins** + * Adds the specified arguments to the `argLine` configuration of the Maven Surefire and Failsafe plugins, merging with any existing argLine value without duplicating arguments. * [org.openrewrite.java.migrate.ComIntelliJAnnotationsToOrgJetbrainsAnnotations](/recipes/java/migrate/comintellijannotationstoorgjetbrainsannotations.md) * **Migrate com.intellij:annotations to org.jetbrains:annotations** * This recipe will upgrade old dependency of com.intellij:annotations to the newer org.jetbrains:annotations. @@ -2948,12 +2939,12 @@ Total standalone recipes: 971 * [org.openrewrite.java.testing.junit6.RemoveJreOther](/recipes/java/testing/junit6/removejreother.md) * **Remove deprecated `JRE.OTHER` from `@EnabledOnJre`/`@DisabledOnJre` arrays** * JUnit 6.1 deprecated `JRE.OTHER` in favor of `int`/`int[]` annotation attributes. This recipe removes `JRE.OTHER` entries from `@EnabledOnJre` and `@DisabledOnJre` array values when other JRE constants remain. Lone `JRE.OTHER` usages are left untouched because they have no mechanical replacement; review them manually. +* [org.openrewrite.java.testing.mockito.AddMockitoJupiterDependency](/recipes/java/testing/mockito/addmockitojupiterdependency.md) + * **Add mockito-junit-jupiter dependency** + * Adds `org.mockito:mockito-junit-jupiter` dependency if `@ExtendWith(MockitoExtension.class)` will be added to any test class, i.e. when Mockito annotations are used in JUnit 5 tests without the extension already present. * [org.openrewrite.java.testing.mockito.AnyStringToNullable](/recipes/java/testing/mockito/anystringtonullable.md) * **Replace Mockito 1.x `anyString()` with `nullable(String.class)`** * Since Mockito 2.10 `anyString()` no longer matches null values. Use `nullable(Class)` instead. -* [org.openrewrite.java.testing.mockito.CloseUnclosedStaticMocks](/recipes/java/testing/mockito/closeunclosedstaticmocks.md) - * **Close unclosed static mocks** - * Ensures that all `mockStatic` calls are properly closed. If `mockStatic` is in lifecycle methods like `@BeforeEach` or `@BeforeAll`, creates a class variable and closes it in `@AfterEach` or `@AfterAll`. If `mockStatic` is inside a test method, wraps it in a try-with-resources block. * [org.openrewrite.java.testing.mockito.MockitoJUnitRunnerSilentToExtension](/recipes/java/testing/mockito/mockitojunitrunnersilenttoextension.md) * **JUnit 4 MockitoJUnitRunner.Silent to JUnit Jupiter MockitoExtension with LENIENT settings** * Replace `@RunWith(MockitoJUnitRunner.Silent.class)` with `@ExtendWith(MockitoExtension.class)` and `@MockitoSettings(strictness = Strictness.LENIENT)`. diff --git a/sidebars.ts b/sidebars.ts index ce45a4c688..5010af90b6 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -193,6 +193,7 @@ const sidebars: SidebarsConfig = { keywords: ['changelog'], }, items: [ + 'changelog/8-85-0-Release', 'changelog/8-83-0-Release', 'changelog/8-81-0-Release', 'changelog/8-80-0-Release', diff --git a/src/plugins/latest-versions.js b/src/plugins/latest-versions.js index 69be930500..4ab1d185ad 100644 --- a/src/plugins/latest-versions.js +++ b/src/plugins/latest-versions.js @@ -1,90 +1,88 @@ const latestVersions = { - "{{VERSION_REWRITE_RECIPE_BOM}}": "3.32.0", - "{{VERSION_REWRITE_GRADLE_PLUGIN}}": "7.34.0", - "{{VERSION_REWRITE_MAVEN_PLUGIN}}": "6.41.0", - "{{VERSION_IO_MODERNE_RECIPE_RECIPES_KOTLIN}}": "0.1.1", - "{{VERSION_IO_MODERNE_RECIPE_RECIPES_SCALA}}": "0.2.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_AI}}": "0.4.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ANGULAR}}": "1.3.1", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_CRYPTOGRAPHY}}": "0.14.1", + "{{VERSION_REWRITE_RECIPE_BOM}}": "3.33.0", + "{{VERSION_REWRITE_GRADLE_PLUGIN}}": "7.35.0", + "{{VERSION_REWRITE_MAVEN_PLUGIN}}": "6.42.0", + "{{VERSION_IO_MODERNE_RECIPE_RECIPES_KOTLIN}}": "0.1.2", + "{{VERSION_IO_MODERNE_RECIPE_RECIPES_SCALA}}": "0.2.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_AI}}": "0.4.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ANGULAR}}": "1.4.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_CRYPTOGRAPHY}}": "0.14.3", "{{VERSION_IO_MODERNE_RECIPE_REWRITE_CVE_2026_22732}}": "0.3.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_DEVCENTER}}": "1.25.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_DROPWIZARD}}": "0.4.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ELASTIC}}": "0.7.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}}": "0.24.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_JASPERREPORTS}}": "0.6.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_JAVA_APPLICATION_SERVER}}": "0.7.2", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_KAFKA}}": "0.7.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_PRETHINK}}": "0.7.1", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_PROGRAM_ANALYSIS}}": "0.12.8", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_REACT}}": "0.3.1", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_RELEASE_METROMAP}}": "0.3.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}}": "0.34.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_TAPESTRY}}": "0.4.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_VULNCHECK}}": "0.7.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_COBOL}}": "2.18.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_CORE}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_CSHARP}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_DOCKER}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_GRADLE}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_GROOVY}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_HCL}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVASCRIPT}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_JSON}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_KOTLIN}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_MAVEN}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_POLYGLOT}}": "2.10.8", - "{{VERSION_ORG_OPENREWRITE_REWRITE_PROPERTIES}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_PROTOBUF}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_PYTHON}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_TEMPLATING}}": "1.41.8", - "{{VERSION_ORG_OPENREWRITE_REWRITE_TOML}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_XML}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_REWRITE_YAML}}": "8.84.9", - "{{VERSION_ORG_OPENREWRITE_META_REWRITE_ANALYSIS}}": "2.34.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ALL}}": "1.26.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ANDROID}}": "0.18.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_APACHE}}": "2.27.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CIRCLECI}}": "3.12.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS}}": "0.26.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS_NG}}": "0.21.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPILED_ANALYSIS}}": "0.14.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CONCOURSE}}": "3.11.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CUCUMBER_JVM}}": "2.12.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOTNET}}": "0.16.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_FEATURE_FLAGS}}": "1.21.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}}": "3.24.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITLAB}}": "0.23.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}": "2.21.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JACKSON}}": "1.24.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_DEPENDENCIES}}": "1.55.3", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_SECURITY}}": "3.32.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JENKINS}}": "0.36.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JODA}}": "0.9.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_KUBERNETES}}": "3.17.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LIBERTY}}": "1.24.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LOGGING_FRAMEWORKS}}": "3.29.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICROMETER}}": "0.29.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICRONAUT}}": "2.34.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}}": "3.36.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_KOTLIN}}": "0.5.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_PYTHON}}": "0.8.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NETTY}}": "0.10.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NODEJS}}": "0.46.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OKHTTP}}": "0.23.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OPENAPI}}": "0.32.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_PRETHINK}}": "0.6.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_QUARKUS}}": "2.33.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REACTIVE_STREAMS}}": "0.20.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REWRITE}}": "0.26.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}": "6.32.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING_TO_QUARKUS}}": "0.10.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SQL}}": "2.12.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STATIC_ANALYSIS}}": "2.36.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STRUTS}}": "0.26.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TERRAFORM}}": "3.14.2", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}": "3.37.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}": "0.40.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_DEVCENTER}}": "1.26.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_DROPWIZARD}}": "0.5.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ELASTIC}}": "0.7.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}}": "0.25.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_JASPERREPORTS}}": "0.6.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_JAVA_APPLICATION_SERVER}}": "0.7.3", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_KAFKA}}": "0.7.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_PRETHINK}}": "0.7.3", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_PROGRAM_ANALYSIS}}": "0.12.9", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_REACT}}": "0.3.2", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_RELEASE_METROMAP}}": "0.4.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}}": "0.35.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_TAPESTRY}}": "0.4.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_VULNCHECK}}": "0.7.2", + "{{VERSION_ORG_OPENREWRITE_REWRITE_COBOL}}": "2.19.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_CORE}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_CSHARP}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_DOCKER}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_GRADLE}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_GROOVY}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_HCL}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVASCRIPT}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_JSON}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_KOTLIN}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_MAVEN}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_PROPERTIES}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_PROTOBUF}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_PYTHON}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_TOML}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_XML}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_YAML}}": "8.85.0", + "{{VERSION_ORG_OPENREWRITE_META_REWRITE_ANALYSIS}}": "2.35.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ALL}}": "1.26.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ANDROID}}": "0.18.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_APACHE}}": "2.27.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CIRCLECI}}": "3.12.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS}}": "0.26.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS_NG}}": "0.21.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPILED_ANALYSIS}}": "0.14.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CONCOURSE}}": "3.11.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CUCUMBER_JVM}}": "2.12.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOTNET}}": "0.16.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_FEATURE_FLAGS}}": "1.21.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}}": "3.25.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITLAB}}": "0.23.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}": "2.22.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JACKSON}}": "1.25.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_DEPENDENCIES}}": "1.56.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_SECURITY}}": "3.33.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JENKINS}}": "0.36.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JODA}}": "0.9.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_KUBERNETES}}": "3.17.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LIBERTY}}": "1.24.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LOGGING_FRAMEWORKS}}": "3.29.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICROMETER}}": "0.29.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICRONAUT}}": "2.34.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}}": "3.37.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_KOTLIN}}": "0.6.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_PYTHON}}": "0.9.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NETTY}}": "0.10.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NODEJS}}": "0.46.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OKHTTP}}": "0.23.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OPENAPI}}": "0.32.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_PRETHINK}}": "0.7.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_QUARKUS}}": "2.33.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REACTIVE_STREAMS}}": "0.20.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REWRITE}}": "0.26.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}": "6.33.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING_TO_QUARKUS}}": "0.10.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SQL}}": "2.12.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STATIC_ANALYSIS}}": "2.37.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STRUTS}}": "0.26.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TERRAFORM}}": "3.14.3", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}": "3.38.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}": "0.41.1", }; export default latestVersions;