diff --git a/docs/changelog/8-68-1-Release.md b/docs/changelog/8-68-1-Release.md new file mode 100644 index 0000000000..0cec6af523 --- /dev/null +++ b/docs/changelog/8-68-1-Release.md @@ -0,0 +1,165 @@ +--- +description: What's changed in OpenRewrite version 8.68.1. +--- + +# 8.68.1 release (2025-12-05) + +_Total recipe count: 5083_ + +:::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.51.2` +* Staging CLI version: `v3.51.4` + +## New Artifacts + +* rewrite-jasperreports + +## New Recipes + +* [io.moderne.hibernate.MigrateToHibernate71](https://docs.openrewrite.org/recipes/hibernate/migratetohibernate71): This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x. +* [io.moderne.jasperreports.MigrateExporterConfigToJasper6](https://docs.openrewrite.org/recipes/jasperreports/migrateexporterconfigtojasper6): Updates deprecated exporter parameter imports to the new configuration classes introduced in JasperReports 6. This includes migrating from parameter classes to configuration classes for PDF, HTML, CSV, and other exporters. +* [io.moderne.jasperreports.MigrateXlsToXlsxExporter](https://docs.openrewrite.org/recipes/jasperreports/migratexlstoxlsxexporter): Migrates the deprecated `JRXlsExporter` to the new `JRXlsxExporter` class in JasperReports 6. Also updates related configuration classes from XLS to XLSX variants. +* [io.moderne.jasperreports.UpgradeToJasperReports5](https://docs.openrewrite.org/recipes/jasperreports/upgradetojasperreports5): Migrates JasperReports from 4.6.0 to 5.6.x. This recipe includes minimal breaking changes, allowing teams to test and validate the migration before proceeding to version 6. +* [io.moderne.jasperreports.UpgradeToJasperReports6](https://docs.openrewrite.org/recipes/jasperreports/upgradetojasperreports6): Migrates JasperReports from 5.x to 6.x with the new exporter API, XLS to XLSX move, and removal of Spring JasperReports views. +* [io.moderne.jasperreports.v5.MigrateExporterSetParameter](https://docs.openrewrite.org/recipes/jasperreports/v5/migrateexportersetparameter): Migrates deprecated `setParameter` calls on JasperReports exporters to the new API using `setExporterInput` and `setExporterOutput`. +* [io.moderne.java.spring.boot2.UpgradeSpringBoot_2_0](https://docs.openrewrite.org/recipes/java/spring/boot2/upgradespringboot_2_0): Migrate applications to the latest Spring Boot 2.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.0. +* [io.moderne.java.spring.boot3.AddSpringBootApplication](https://docs.openrewrite.org/recipes/java/spring/boot3/addspringbootapplication): Adds a `@SpringBootApplication` class containing a main method to bootify your Spring Framework application. +* [io.moderne.java.spring.boot4.AddJackson2ForJerseyJson](https://docs.openrewrite.org/recipes/java/spring/boot4/addjackson2forjerseyjson): Check whether a module uses Jersey on combination with JSON and adds the needed `spring-boot-jackson` dependency and conditionally `spring-boot-jackson2` dependency. +* [io.moderne.java.spring.boot4.AddMongoDbRepresentationProperties](https://docs.openrewrite.org/recipes/java/spring/boot4/addmongodbrepresentationproperties): Adds the 'spring.mongodb.representation.uuid' property with value 'standard' and the 'spring.data.mongodb.representation.big-decimal' property with the value 'decimal128' to Spring configuration files when a MongoDB dependency is detected. +* [io.moderne.java.spring.boot4.MigrateSpringRetry](https://docs.openrewrite.org/recipes/java/spring/boot4/migratespringretry): Handle spring-retry not longer managed by Spring Boot and the possible migration to Spring Core Resilience. +* [io.moderne.java.spring.boot4.MigrateSpringRetryToSpringFramework7](https://docs.openrewrite.org/recipes/java/spring/boot4/migratespringretrytospringframework7): Migrate `spring-retry`s `@Retryable` and `@Backoff` annotation to Spring Framework 7 Resilience annotations. +* [io.moderne.java.spring.boot4.RemoveGradleUberJarLoaderImplementationConfig](https://docs.openrewrite.org/recipes/java/spring/boot4/removegradleuberjarloaderimplementationconfig): Removes the Spring Boot Uber-Jar `loaderImplementation` configuration from Gradle build files. +* [io.moderne.java.spring.boot4.ReplaceDeprecatedAutoconfigureMongoApi](https://docs.openrewrite.org/recipes/java/spring/boot4/replacedeprecatedautoconfiguremongoapi): Replace deprecated `org.springframework.boot.autoconfigure.mongo` API. +* [io.moderne.java.spring.boot4.ReplaceDeprecatedDockerApi](https://docs.openrewrite.org/recipes/java/spring/boot4/replacedeprecateddockerapi): Replaces deprecated `DockerApi` constructors and configuration methods with their modern equivalents. +* [io.moderne.java.spring.boot4.ReplaceDeprecatedThreadPoolTaskSchedulerBuilderApi](https://docs.openrewrite.org/recipes/java/spring/boot4/replacedeprecatedthreadpooltaskschedulerbuilderapi): Replaces the deprecated 5-argument constructor of `ThreadPoolTaskSchedulerBuilder` with the builder pattern. +* [io.moderne.java.spring.hibernate.MigrateDaoSupportGetSession](https://docs.openrewrite.org/recipes/java/spring/hibernate/migratedaosupportgetsession): Migrate `HibernateDaoSupport#getSession()` usage to `HibernateDaoSupport#getSessionFactory()#getCurrentSession()` and annotate the methods with `@Transactional`. +* [io.moderne.java.spring.hibernate.MigrateSaveOrUpdateAll](https://docs.openrewrite.org/recipes/java/spring/hibernate/migratesaveorupdateall): Migrate removed `HibernateDaoSupport#getHibernateTemplate#.saveOrUpdateAll` to an iterative `HibernateDaoSupport#getHibernateTemplate#.saveOrUpdate`. +* [io.moderne.java.spring.orm.SpringORM5](https://docs.openrewrite.org/recipes/java/spring/orm/springorm5): Migrate applications using Spring ORM Hibernate Support to Hibernate 5 compatible version. This will enable a further migration by the Spring Framework migration past 5. +* [org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe](https://docs.openrewrite.org/recipes/org/apache/camel/upgrade/camel416/camel416milolambdarecipe): Milo: The monitored item data value listener API has changed. +* [org.apache.camel.upgrade.camel416.CamelMigrationRecipe](https://docs.openrewrite.org/recipes/org/apache/camel/upgrade/camel416/camelmigrationrecipe): Migrates `camel 4.15` application to `camel 4.16`. +* [org.apache.camel.upgrade.camel416.camelMiloCertificate](https://docs.openrewrite.org/recipes/org/apache/camel/upgrade/camel416/camelmilocertificate): Different java type for ServerCertificateValidator in camel-milo. +* [org.openrewrite.github.AddDependabotCooldown](https://docs.openrewrite.org/recipes/github/adddependabotcooldown): Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates). +* [org.openrewrite.hibernate.MigrateToHibernate66](https://docs.openrewrite.org/recipes/hibernate/migratetohibernate66): This recipe will apply changes commonly needed when migrating to Hibernate 6.6.x. +* [org.openrewrite.hibernate.MigrateToHibernate70](https://docs.openrewrite.org/recipes/hibernate/migratetohibernate70): This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x. +* [org.openrewrite.hibernate.MigrateToHibernate71](https://docs.openrewrite.org/recipes/hibernate/migratetohibernate71): This recipe will apply changes commonly needed when migrating to Hibernate 7.1.x. +* [org.openrewrite.java.RemoveMethodThrows](https://docs.openrewrite.org/recipes/java/removemethodthrows): Remove specific, or all exceptions from a method declaration `throws` clause. +* [org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations](https://docs.openrewrite.org/recipes/java/jspecify/migratefrommicronautannotations): Migrate from Micronaut Framework annotations to JSpecify. +* [org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway](https://docs.openrewrite.org/recipes/java/spring/boot3/updateprometheuspushgateway): Update the Prometheus Pushgateway artifact ID for Spring Boot 3.5 compatibility. +* [org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException](https://docs.openrewrite.org/recipes/java/spring/security7/securityconfigurerremovethrowsexception): Remove throws exception in `SecurityConfigurer` methods `init` and `configure`. +* [org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting](https://docs.openrewrite.org/recipes/java/testing/assertj/simplifystreammaptoextracting): Simplifies AssertJ assertions that use `stream().map()` to extract values from a collection by using the dedicated `extracting()` method instead. This makes the assertion more readable and leverages AssertJ's built-in extraction capabilities. +* [org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed](https://docs.openrewrite.org/recipes/java/testing/mockito/addmockitoextensionifannotationsused): Adds `@ExtendWith(MockitoExtension.class)` to tests using `@Mock` or `@Captor`. +* [org.openrewrite.javascript.cleanup.use-object-property-shorthand](https://docs.openrewrite.org/recipes/javascript/cleanup/use-object-property-shorthand): Simplifies object properties where the property name and value/variable name are the same (e.g., `{ x: x }` becomes `{ x }`). Applies to both destructuring patterns and object literals. +* [org.openrewrite.javascript.dependencies.find-dependency](https://docs.openrewrite.org/recipes/javascript/dependencies/find-dependency): Finds dependencies in a project's `package.json`. Can find both direct dependencies and dependencies that transitively include the target package. This recipe is commonly used as a precondition for other recipes. +* [org.openrewrite.javascript.dependencies.upgrade-dependency-version](https://docs.openrewrite.org/recipes/javascript/dependencies/upgrade-dependency-version): Upgrades the version of a dependency in `package.json` and updates the lock file by running the package manager. +* [org.openrewrite.node.migrate.buffer.replace-slow-buffer](https://docs.openrewrite.org/recipes/node/migrate/buffer/replace-slow-buffer): Replace deprecated `new SlowBuffer(size)` calls with `Buffer.allocUnsafeSlow(size)`. SlowBuffer was used to create un-pooled Buffer instances, but has been removed in favor of the explicit Buffer.allocUnsafeSlow() method. +* [org.openrewrite.node.migrate.crypto.replace-crypto-fips](https://docs.openrewrite.org/recipes/node/migrate/crypto/replace-crypto-fips): Replace deprecated `crypto.fips` property access with `crypto.getFips()` for reads and `crypto.setFips(value)` for writes. +* [org.openrewrite.node.migrate.fs.replace-dirent-path](https://docs.openrewrite.org/recipes/node/migrate/fs/replace-dirent-path): Replaces deprecated `dirent.path` property access with `dirent.parentPath` on `fs.Dirent` instances to address DEP0178 deprecation. +* [org.openrewrite.node.migrate.fs.replace-fs-access-constants](https://docs.openrewrite.org/recipes/node/migrate/fs/replace-fs-access-constants): Replace deprecated file access constants (`fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK`) with their equivalents from `fs.constants`. These constants were removed in Node.js v24+ and should be accessed through the constants namespace. +* [org.openrewrite.node.migrate.fs.replace-fs-truncate-fd](https://docs.openrewrite.org/recipes/node/migrate/fs/replace-fs-truncate-fd): Replace deprecated `fs.truncate(fd, ...)` and `fs.truncateSync(fd, ...)` calls with `fs.ftruncate(fd, ...)` and `fs.ftruncateSync(fd, ...)` when the first argument is a file descriptor (number). +* [org.openrewrite.node.migrate.fs.replace-stats-constructor](https://docs.openrewrite.org/recipes/node/migrate/fs/replace-stats-constructor): Replace deprecated `new fs.Stats()` constructor calls with an object literal containing Stats properties initialized to undefined. +* [org.openrewrite.node.migrate.http.replace-outgoing-message-headers](https://docs.openrewrite.org/recipes/node/migrate/http/replace-outgoing-message-headers): Replace deprecated `OutgoingMessage.prototype._headers` with `getHeaders()`, `setHeader()`, `removeHeader()` and `OutgoingMessage.prototype._headerNames` with `getHeaderNames()` to address DEP0066 deprecation. +* [org.openrewrite.node.migrate.process.coerce-process-exit-code](https://docs.openrewrite.org/recipes/node/migrate/process/coerce-process-exit-code): Wraps non-integer values passed to `process.exit()` or assigned to `process.exitCode` with `Math.trunc()` to avoid the DEP0164 deprecation warning about implicit coercion to integer. +* [org.openrewrite.node.migrate.upgrade-node-22](https://docs.openrewrite.org/recipes/node/migrate/upgrade-node-22): Migrate deprecated APIs for Node.js 22 compatibility. Addresses Node 22 runtime deprecations and deprecations from earlier versions. +* [org.openrewrite.node.migrate.upgrade-node-24](https://docs.openrewrite.org/recipes/node/migrate/upgrade-node-24): Migrate deprecated APIs for Node.js 24 compatibility. Includes all migrations from Node.js 22, plus Node 23 and Node 24 deprecations. +* [org.openrewrite.node.migrate.util.remove-promisify-on-promise](https://docs.openrewrite.org/recipes/node/migrate/util/remove-promisify-on-promise): Removes `util.promisify()` calls on functions that already return a Promise. Since Node.js v17.0.0, calling promisify on a function that returns a Promise emits a runtime deprecation warning (DEP0174). +* [org.openrewrite.node.migrate.util.replace-is-webassembly-compiled-module](https://docs.openrewrite.org/recipes/node/migrate/util/replace-is-webassembly-compiled-module): Replace `util.types.isWebAssemblyCompiledModule(value)` with `value instanceof WebAssembly.Module`. +* [org.openrewrite.node.migrate.zlib.replace-bytes-read](https://docs.openrewrite.org/recipes/node/migrate/zlib/replace-bytes-read): Replace deprecated `bytesRead` property on zlib streams with `bytesWritten`. +* [tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimaltworecipe): Prefer using the constant `BigDecimal#TWO` when possible. +* [tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$asthelpersgetstartpositionrecipe): Prefer `ASTHelpers#getStartPosition(Tree)` over alternatives that require casting. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$collectioniteratornextrecipe): Prefer `collection.iterator().next()` over more contrived alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddfirstrecipe): Prefer `List#addFirst(Object)` over less idiomatic alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddrecipe): Prefer `List#add(Object)` over less idiomatic alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovefirstrecipe): Prefer `List#removeFirst()`} over less idiomatic alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovelastrecipe): Prefer `List#removeLast()`} over less idiomatic alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetfirstrecipe): Prefer `SequencedCollection#getFirst()` over less idiomatic alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetlastrecipe): Prefer `SequencedCollection#getLast()` over less idiomatic alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetfirstrecipe): Prefer `SortedSet#first()` over more verbose alternatives. +* [tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetlastrecipe): Prefer `SortedSet#last()` over more verbose alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes): Refaster rules related to Jackson 2.x expressions and statements. +[Source](https://error-prone.picnic.tech/refasterrules/Jackson2Rules). +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalintrecipe): Prefer `JsonNode#optional(int)` over more contrived alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalstringrecipe): Prefer `JsonNode#optional(String)` over more contrived alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithclassrecipe): Prefer `ObjectMapper#convertValue(Object, Class)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithjavatyperecipe): Prefer `ObjectMapper#convertValue(Object, JavaType)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe): Prefer `ObjectMapper#convertValue(Object, TypeReference)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmappervaluetotreerecipe): Prefer `ObjectMapper#valueToTree(Object)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes): Refaster rules related to Jackson 3.x expressions and statements. +[Source](https://error-prone.picnic.tech/refasterrules/Jackson3Rules). +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalintrecipe): Prefer `JsonNode#optional(int)` over more contrived alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalstringrecipe): Prefer `JsonNode#optional(String)` over more contrived alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithclassrecipe): Prefer `ObjectMapper#convertValue(Object, Class)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithjavatyperecipe): Prefer `ObjectMapper#convertValue(Object, JavaType)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe): Prefer `ObjectMapper#convertValue(Object, TypeReference)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmappervaluetotreerecipe): Prefer `ObjectMapper#valueToTree(Object)` over more contrived and less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortrecipe): Apply `Flux#distinct()` before `Flux#sort()` to reduce the number of elements to sort. +* [tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortwithcomparatorrecipe): Apply `Flux#distinct()` before `Flux#sort(Comparator)` to reduce the number of elements to sort. +* [tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes): Refaster rules related to Spring Test expressions and statements. +[Source](https://error-prone.picnic.tech/refasterrules/SpringTestRules). +* [tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonlenientrecipe): Prefer `BodyContentSpec#json(String, JsonCompareMode)` over alternatives that implicitly perform a `JsonCompareMode#LENIENT lenient` comparison or are deprecated. +* [tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonstrictrecipe): Prefer `BodyContentSpec#json(String, JsonCompareMode)` over the deprecated alternative. +* [tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedrecipe): Apply `Stream#distinct()` before `Stream#sorted()` to reduce the number of elements to sort. +* [tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedwithcomparatorrecipe): Apply `Stream#distinct()` before `Stream#sorted(Comparator)` to reduce the number of elements to sort. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharbetweenindicesrecipe): Prefer `String#indexOf(int, int, int)` over less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharfromindexrecipe): Prefer `String#indexOf(int, int)` over less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringbetweenindicesrecipe): Prefer `String#indexOf(String, int)` over less efficient alternatives. +* [tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe](https://docs.openrewrite.org/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringfromindexrecipe): Prefer `String#indexOf(String, int)` over less efficient alternatives. + +## Removed Recipes + +* **tech.picnic.errorprone.refasterrules.JacksonRulesRecipes**: Refaster rules related to Jackson expressions and statements. +[Source](https://error-prone.picnic.tech/refasterrules/JacksonRules). +* **tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe**: Prefer `JsonNode#optional(int)` over more contrived alternatives. +* **tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe**: Prefer `JsonNode#optional(String)` over more contrived alternatives. +* **tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe**: Prefer `Flux#onErrorComplete()` over more contrived alternatives. +* **tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe**: Prefer `String#indexOf(int, int)` over less efficient alternatives. +* **tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe**: Prefer `String#indexOf(String, int)` over less efficient alternatives. + +## Changed Recipes + +* [org.openrewrite.gradle.search.DoesNotIncludeDependency](https://docs.openrewrite.org/recipes/gradle/search/doesnotincludedependency) was changed: + * Old Options: + * `artifactId: { type: String, required: true }` + * `configuration: { type: String, required: false }` + * `groupId: { type: String, required: true }` + * New Options: + * `artifactId: { type: String, required: true }` + * `configuration: { type: String, required: false }` + * `groupId: { type: String, required: true }` + * `version: { type: String, required: false }` +* [org.openrewrite.java.format.AutoFormat](https://docs.openrewrite.org/recipes/java/format/autoformat) was changed: + * Old Options: + * `style: { type: String, required: false }` + * New Options: + * `removeCustomLineBreaks: { type: Boolean, required: false }` + * `style: { type: String, required: false }` +* [org.openrewrite.java.dependencies.search.DoesNotIncludeDependency](https://docs.openrewrite.org/recipes/java/dependencies/search/doesnotincludedependency) was changed: + * Old Options: + * `artifactId: { type: String, required: true }` + * `configuration: { type: String, required: false }` + * `groupId: { type: String, required: true }` + * `onlyDirect: { type: Boolean, required: false }` + * `scope: { type: String, required: false }` + * New Options: + * `artifactId: { type: String, required: true }` + * `configuration: { type: String, required: false }` + * `groupId: { type: String, required: true }` + * `onlyDirect: { type: Boolean, required: false }` + * `scope: { type: String, required: false }` + * `version: { type: String, required: false }` +* [org.openrewrite.maven.search.DoesNotIncludeDependency](https://docs.openrewrite.org/recipes/maven/search/doesnotincludedependency) was changed: + * Old Options: + * `artifactId: { type: String, required: true }` + * `groupId: { type: String, required: true }` + * `onlyDirect: { type: Boolean, required: false }` + * `scope: { type: String, required: false }` + * New Options: + * `artifactId: { type: String, required: true }` + * `groupId: { type: String, required: true }` + * `onlyDirect: { type: Boolean, required: false }` + * `scope: { type: String, required: false }` + * `version: { type: String, required: false }` \ No newline at end of file diff --git a/docs/recipes/csharp/dependencies/dependencyvulnerabilitycheck.md b/docs/recipes/csharp/dependencies/dependencyvulnerabilitycheck.md index ccf853031b..8815d2e3a5 100644 --- a/docs/recipes/csharp/dependencies/dependencyvulnerabilitycheck.md +++ b/docs/recipes/csharp/dependencies/dependencyvulnerabilitycheck.md @@ -31,7 +31,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo | Parameter | Value | | --- | --- | |addMarkers|`null`| -|cvePattern|| +|cvePattern|`null`| diff --git a/docs/recipes/devcenter/README.md b/docs/recipes/devcenter/README.md index d7002c6699..ab5a577782 100644 --- a/docs/recipes/devcenter/README.md +++ b/docs/recipes/devcenter/README.md @@ -20,9 +20,9 @@ _Recipes that include further recipes, often including the individual recipes be * [Parent POM upgrade](./parentpomupgrade.md) * [Report as security issues](./reportassecurityissues.md) * [Upgrade Apache Maven Parent](./upgrademavenparent.md) -* [Upgrade Apache Maven Parent](./upgrademavenpluginsparent.md) -* [Upgrade Apache Maven Parent](./upgrademavensharedparent.md) * [Upgrade Apache Parent POM](./upgradeapacheparent.md) +* [Upgrade Maven Plugins Parent](./upgrademavenpluginsparent.md) +* [Upgrade Maven Shared Parent](./upgrademavensharedparent.md) * [Upgrade Quarkus Universe BOM](./upgradequarkusuniversebom.md) * [Vulnerabilities status](./dependencyvulnerabilitycheck.md) diff --git a/docs/recipes/devcenter/upgrademavenpluginsparent.md b/docs/recipes/devcenter/upgrademavenpluginsparent.md index 62231ec229..a098257d23 100644 --- a/docs/recipes/devcenter/upgrademavenpluginsparent.md +++ b/docs/recipes/devcenter/upgrademavenpluginsparent.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Upgrade Apache Maven Parent" +sidebar_label: "Upgrade Maven Plugins Parent" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Upgrade Apache Maven Parent +# Upgrade Maven Plugins Parent **io.moderne.devcenter.UpgradeMavenPluginsParent** @@ -37,7 +37,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: io.moderne.devcenter.UpgradeMavenPluginsParent -displayName: Upgrade Apache Maven Parent +displayName: Upgrade Maven Plugins Parent description: | Upgrades the Apache Maven parent POM to the latest version. recipeList: diff --git a/docs/recipes/devcenter/upgrademavensharedparent.md b/docs/recipes/devcenter/upgrademavensharedparent.md index cf69dcea87..e18dd1e979 100644 --- a/docs/recipes/devcenter/upgrademavensharedparent.md +++ b/docs/recipes/devcenter/upgrademavensharedparent.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Upgrade Apache Maven Parent" +sidebar_label: "Upgrade Maven Shared Parent" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Upgrade Apache Maven Parent +# Upgrade Maven Shared Parent **io.moderne.devcenter.UpgradeMavenSharedParent** @@ -37,7 +37,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: io.moderne.devcenter.UpgradeMavenSharedParent -displayName: Upgrade Apache Maven Parent +displayName: Upgrade Maven Shared Parent description: | Upgrades the Apache Maven parent POM to the latest version. recipeList: diff --git a/docs/recipes/github/README.md b/docs/recipes/github/README.md index 683ddd996a..63d5c75d69 100644 --- a/docs/recipes/github/README.md +++ b/docs/recipes/github/README.md @@ -17,6 +17,7 @@ _Recipes that include further recipes, often including the individual recipes be ## Recipes +* [Add cooldown periods to Dependabot configuration](./adddependabotcooldown.md) * [Add cron workflow trigger](./addcrontrigger.md) * [Add manual workflow trigger](./addmanualtrigger.md) * [Cancel in-progress workflow when it is triggered again](./autocancelinprogressworkflow.md) diff --git a/docs/recipes/github/adddependabotcooldown.md b/docs/recipes/github/adddependabotcooldown.md new file mode 100644 index 0000000000..0cb2c2bc02 --- /dev/null +++ b/docs/recipes/github/adddependabotcooldown.md @@ -0,0 +1,299 @@ +--- +sidebar_label: "Add cooldown periods to Dependabot configuration" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Add cooldown periods to Dependabot configuration + +**org.openrewrite.github.AddDependabotCooldown** + +_Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ + +### Tags + +* [github](/reference/recipes-by-tag#github) +* [security](/reference/recipes-by-tag#security) +* [dependabot](/reference/recipes-by-tag#dependabot) +* [dependencies](/reference/recipes-by-tag#dependencies) + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-github-actions/blob/main/src/main/java/org/openrewrite/github/AddDependabotCooldown.java), +[Issue Tracker](https://github.com/openrewrite/rewrite-github-actions/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-github-actions/) + +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` | cooldownDays | *Optional*. The number of days to wait before considering a published dependency suitable for use (1-90). This delay allows security vendors time to identify potential compromises. Applied to all version types unless specific semver options are set. | `7` | +| `Integer` | semverMajorDays | *Optional*. The number of days to wait for major version updates (1-90). Only applies to package managers that support semantic versioning. | `14` | +| `Integer` | semverMinorDays | *Optional*. The number of days to wait for minor version updates (1-90). Only applies to package managers that support semantic versioning. | `7` | +| `Integer` | semverPatchDays | *Optional*. The number of days to wait for patch version updates (1-90). Only applies to package managers that support semantic versioning. | `3` | +| `List` | include | *Optional*. List of up to 150 dependencies to apply cooldown to. Supports wildcard patterns with `*`. If not specified, cooldown applies to all dependencies. | `lodash, react*` | +| `List` | exclude | *Optional*. List of up to 150 dependencies to exempt from cooldown. Supports wildcard patterns with `*`. Exclude list takes precedence over include list. | `critical-security-package` | + +## Example + +###### Parameters +| Parameter | Value | +| --- | --- | +|cooldownDays|`null`| +|semverMajorDays|`null`| +|semverMinorDays|`null`| +|semverPatchDays|`null`| +|include|`null`| +|exclude|`null`| + + + + + + +###### Before +```yaml title=".github/dependabot.yml" +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + - package-ecosystem: maven + directory: / + schedule: + interval: weekly +``` + +###### After +```yaml title=".github/dependabot.yml" +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + cooldown: + default-days: 7 + - package-ecosystem: maven + directory: / + schedule: + interval: weekly + cooldown: + default-days: 7 +``` + + + + +```diff +--- .github/dependabot.yml ++++ .github/dependabot.yml +@@ -7,0 +7,2 @@ + schedule: + interval: daily ++ cooldown: ++ default-days: 7 + - package-ecosystem: maven +@@ -11,0 +13,2 @@ + schedule: + interval: weekly ++ cooldown: ++ default-days: 7 + +``` + + + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-github-actions` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.github.AddDependabotCooldown") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-github-actions:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-github-actions:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}}") + } + rewrite { + activeRecipe("org.openrewrite.github.AddDependabotCooldown") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.github.AddDependabotCooldown + + + + + org.openrewrite.recipe + rewrite-github-actions + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-github-actions:RELEASE -Drewrite.activeRecipes=org.openrewrite.github.AddDependabotCooldown -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe AddDependabotCooldown +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-github-actions:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}} +``` + + + +## 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 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/changedependencygroupid.md b/docs/recipes/gradle/changedependencygroupid.md index bf475075f3..b75025227e 100644 --- a/docs/recipes/gradle/changedependencygroupid.md +++ b/docs/recipes/gradle/changedependencygroupid.md @@ -33,6 +33,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: +* [Migrate to JasperReports 5.6.x](/recipes/jasperreports/upgradetojasperreports5.md) * [Update the Micronaut Session support](/recipes/java/micronaut/updatemicronautsession.md) ## Example diff --git a/docs/recipes/gradle/plugins/upgradepluginversion.md b/docs/recipes/gradle/plugins/upgradepluginversion.md index bbf4e03686..046834fca8 100644 --- a/docs/recipes/gradle/plugins/upgradepluginversion.md +++ b/docs/recipes/gradle/plugins/upgradepluginversion.md @@ -47,7 +47,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Boot 3.4 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-community-edition.md) * [Migrate to Spring Boot 3.5 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md) * [Migrate to Spring Boot 3.5 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-moderne-edition.md) -* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Spring Boot 4.0 (Community Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md) * [Upgrade to Spring Boot 2.5](/recipes/java/spring/boot2/upgradespringboot_2_5.md) ## Examples diff --git a/docs/recipes/gradle/search/doesnotincludedependency.md b/docs/recipes/gradle/search/doesnotincludedependency.md index 750acb99f0..cd3859d863 100644 --- a/docs/recipes/gradle/search/doesnotincludedependency.md +++ b/docs/recipes/gradle/search/doesnotincludedependency.md @@ -25,6 +25,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | --- | --- | --- | --- | | `String` | groupId | The first part of a dependency coordinate `com.google.guava:guava:VERSION`. Supports glob. | `com.google.guava` | | `String` | artifactId | The second part of a dependency coordinate `com.google.guava:guava:VERSION`. Supports glob. | `guava` | +| `String` | version | *Optional*. Match only dependencies with the specified resolved version. Node-style [version selectors](https://docs.openrewrite.org/reference/dependency-version-selectors) may be used. All versions are searched by default. | `1.x` | | `String` | configuration | *Optional*. Match dependencies with the specified scope. If not specified, all configurations will be searched. | `compileClasspath` | @@ -41,6 +42,7 @@ recipeList: - org.openrewrite.gradle.search.DoesNotIncludeDependency: groupId: com.google.guava artifactId: guava + version: 1.x configuration: compileClasspath ``` @@ -71,7 +73,7 @@ repositories { You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe DoesNotIncludeDependency --recipe-option "groupId=com.google.guava" --recipe-option "artifactId=guava" --recipe-option "configuration=compileClasspath" +mod run . --recipe DoesNotIncludeDependency --recipe-option "groupId=com.google.guava" --recipe-option "artifactId=guava" --recipe-option "version=1.x" --recipe-option "configuration=compileClasspath" ``` If the recipe is not available locally, then you can install it using: diff --git a/docs/recipes/hibernate/README.md b/docs/recipes/hibernate/README.md index 3d6c78042b..8f7692ad84 100644 --- a/docs/recipes/hibernate/README.md +++ b/docs/recipes/hibernate/README.md @@ -2,7 +2,6 @@ ## Categories -* [Migratetohypersistenceutilshibernate6](/recipes/hibernate/migratetohypersistenceutilshibernate6) * [Search](/recipes/hibernate/search) * [Update66](/recipes/hibernate/update66) * [Update70](/recipes/hibernate/update70) @@ -12,26 +11,33 @@ _Recipes that include further recipes, often including the individual recipes below._ -* [Migrate Hibernate dependencies to 6.0.x](./migratetohibernatedependencies60.md) -* [Migrate to Hibernate 6.0.x](./migratetohibernate60.md) -* [Migrate to Hibernate 6.1.x](./migratetohibernate61.md) -* [Migrate to Hibernate 6.2.x](./migratetohibernate62.md) -* [Migrate to Hibernate 6.3.x](./migratetohibernate63.md) -* [Migrate to Hibernate 6.4.x](./migratetohibernate64.md) -* [Migrate to Hibernate 6.5.x](./migratetohibernate65.md) -* [Migrate to Hibernate 6.6.x](./migratetohibernate66.md) -* [Migrate to Hibernate 7.0.x](./migratetohibernate70.md) -* [Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType`](./typedescriptortotype.md) +* [Migrate Hibernate Types to Hypersistence Utils 6.0 (Community Edition)](./migratetohypersistenceutilshibernate60-community-edition.md) +* [Migrate Hibernate dependencies to 6.0.x (Community Edition)](./migratetohibernatedependencies60-community-edition.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](./migratetohibernate60-community-edition.md) +* [Migrate to Hibernate 6.1.x (Community Edition)](./migratetohibernate61-community-edition.md) +* [Migrate to Hibernate 6.2.x (Community Edition)](./migratetohibernate62-community-edition.md) +* [Migrate to Hibernate 6.3.x (Community Edition)](./migratetohibernate63-community-edition.md) +* [Migrate to Hibernate 6.4.x (Community Edition)](./migratetohibernate64-community-edition.md) +* [Migrate to Hibernate 6.5.x (Community Edition)](./migratetohibernate65-community-edition.md) +* [Migrate to Hibernate 6.6.x (Moderne Edition)](./migratetohibernate66-moderne-edition.md) +* [Migrate to Hibernate 6.6.x (Community Edition)](./migratetohibernate66-community-edition.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](./migratetohibernate70-moderne-edition.md) +* [Migrate to Hibernate 7.0.x (Community Edition)](./migratetohibernate70-community-edition.md) +* [Migrate to Hibernate 7.1.x (Moderne Edition)](./migratetohibernate71-moderne-edition.md) +* [Migrate to Hibernate 7.1.x (Community Edition)](./migratetohibernate71-community-edition.md) +* [Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` (Community Edition)](./typedescriptortotype-community-edition.md) ## Recipes -* [`@Type` annotation type parameter migration](./typeannotationparameter.md) -* [AddScalarPreferStandardBasicTypesForHibernate5](./addscalarpreferstandardbasictypes.md) -* [Migrate `UserType` to Hibernate 6](./migrateusertype.md) -* [Migration of `ResultCheckStyle` to `Expectation`](./migrateresultcheckstyletoexpectation.md) -* [Remove invalid `@GeneratedValue` annotation](./removeinvalidhibernategeneratedvalueannotation.md) -* [Replace `@LazyCollection` with `jakarta.persistence.FetchType`](./replacelazycollectionannotation.md) -* [Replace boolean type mappings with converters](./migratebooleanmappings.md) -* [Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector`](./emptyinterceptortointerface.md) +* [`@Type` annotation type parameter migration (Community Edition)](./typeannotationparameter-community-edition.md) +* [AddScalarPreferStandardBasicTypesForHibernate5 (Community Edition)](./addscalarpreferstandardbasictypes-community-edition.md) +* [Migrate `UserType` to Hibernate 6 (Community Edition)](./migrateusertype-community-edition.md) +* [Migrate Hibernate Types to Hypersistence Utils 6.2 (Community Edition)](./migratetohypersistenceutilshibernate62-community-edition.md) +* [Migrate Hibernate Types to Hypersistence Utils 6.3 (Community Edition)](./migratetohypersistenceutilshibernate63-community-edition.md) +* [Migration of `ResultCheckStyle` to `Expectation` (Community Edition)](./migrateresultcheckstyletoexpectation-community-edition.md) +* [Remove invalid `@GeneratedValue` annotation (Community Edition)](./removeinvalidhibernategeneratedvalueannotation-community-edition.md) +* [Replace `@LazyCollection` with `jakarta.persistence.FetchType` (Community Edition)](./replacelazycollectionannotation-community-edition.md) +* [Replace boolean type mappings with converters (Community Edition)](./migratebooleanmappings-community-edition.md) +* [Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector` (Community Edition)](./emptyinterceptortointerface-community-edition.md) diff --git a/docs/recipes/hibernate/addscalarpreferstandardbasictypes.md b/docs/recipes/hibernate/addscalarpreferstandardbasictypes-community-edition.md similarity index 97% rename from docs/recipes/hibernate/addscalarpreferstandardbasictypes.md rename to docs/recipes/hibernate/addscalarpreferstandardbasictypes-community-edition.md index d6020293d6..eb88014f7b 100644 --- a/docs/recipes/hibernate/addscalarpreferstandardbasictypes.md +++ b/docs/recipes/hibernate/addscalarpreferstandardbasictypes-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "AddScalarPreferStandardBasicTypesForHibernate5" +sidebar_label: "AddScalarPreferStandardBasicTypesForHibernate5 (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# AddScalarPreferStandardBasicTypesForHibernate5 +# AddScalarPreferStandardBasicTypesForHibernate5 (Community Edition) **org.openrewrite.hibernate.AddScalarPreferStandardBasicTypes** @@ -24,7 +24,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 Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/emptyinterceptortointerface.md b/docs/recipes/hibernate/emptyinterceptortointerface-community-edition.md similarity index 97% rename from docs/recipes/hibernate/emptyinterceptortointerface.md rename to docs/recipes/hibernate/emptyinterceptortointerface-community-edition.md index 5b2c0576e6..8b41894544 100644 --- a/docs/recipes/hibernate/emptyinterceptortointerface.md +++ b/docs/recipes/hibernate/emptyinterceptortointerface-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector`" +sidebar_label: "Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector` (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector` +# Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector` (Community Edition) **org.openrewrite.hibernate.EmptyInterceptorToInterface** @@ -24,7 +24,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 Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/migratebooleanmappings.md b/docs/recipes/hibernate/migratebooleanmappings-community-edition.md similarity index 97% rename from docs/recipes/hibernate/migratebooleanmappings.md rename to docs/recipes/hibernate/migratebooleanmappings-community-edition.md index 95dfbffbd5..adf792a341 100644 --- a/docs/recipes/hibernate/migratebooleanmappings.md +++ b/docs/recipes/hibernate/migratebooleanmappings-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Replace boolean type mappings with converters" +sidebar_label: "Replace boolean type mappings with converters (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Replace boolean type mappings with converters +# Replace boolean type mappings with converters (Community Edition) **org.openrewrite.hibernate.MigrateBooleanMappings** @@ -24,7 +24,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 Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/migrateresultcheckstyletoexpectation.md b/docs/recipes/hibernate/migrateresultcheckstyletoexpectation-community-edition.md similarity index 97% rename from docs/recipes/hibernate/migrateresultcheckstyletoexpectation.md rename to docs/recipes/hibernate/migrateresultcheckstyletoexpectation-community-edition.md index 509a0db228..b54c55fedf 100644 --- a/docs/recipes/hibernate/migrateresultcheckstyletoexpectation.md +++ b/docs/recipes/hibernate/migrateresultcheckstyletoexpectation-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migration of `ResultCheckStyle` to `Expectation`" +sidebar_label: "Migration of `ResultCheckStyle` to `Expectation` (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migration of `ResultCheckStyle` to `Expectation` +# Migration of `ResultCheckStyle` to `Expectation` (Community Edition) **org.openrewrite.hibernate.MigrateResultCheckStyleToExpectation** @@ -24,7 +24,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 Hibernate 6.5.x](/recipes/hibernate/migratetohibernate65.md) +* [Migrate to Hibernate 6.5.x (Community Edition)](/recipes/hibernate/migratetohibernate65-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/migratetohibernate60.md b/docs/recipes/hibernate/migratetohibernate60-community-edition.md similarity index 92% rename from docs/recipes/hibernate/migratetohibernate60.md rename to docs/recipes/hibernate/migratetohibernate60-community-edition.md index c06197c4da..d5f26816c3 100644 --- a/docs/recipes/hibernate/migratetohibernate60.md +++ b/docs/recipes/hibernate/migratetohibernate60-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.0.x" +sidebar_label: "Migrate to Hibernate 6.0.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.0.x +# Migrate to Hibernate 6.0.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernate60** @@ -28,15 +28,15 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate Hibernate dependencies to 6.0.x](../hibernate/migratetohibernatedependencies60) -* [AddScalarPreferStandardBasicTypesForHibernate5](../hibernate/addscalarpreferstandardbasictypes) -* [Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector`](../hibernate/emptyinterceptortointerface) -* [Replace boolean type mappings with converters](../hibernate/migratebooleanmappings) -* [`@Type` annotation type parameter migration](../hibernate/typeannotationparameter) -* [Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType`](../hibernate/typedescriptortotype) +* [Migrate Hibernate dependencies to 6.0.x (Community Edition)](../hibernate/migratetohibernatedependencies60-community-edition) +* [AddScalarPreferStandardBasicTypesForHibernate5 (Community Edition)](../hibernate/addscalarpreferstandardbasictypes-community-edition) +* [Replace `extends EmptyInterceptor` with `implements Interceptor` and potentially `StatementInspector` (Community Edition)](../hibernate/emptyinterceptortointerface-community-edition) +* [Replace boolean type mappings with converters (Community Edition)](../hibernate/migratebooleanmappings-community-edition) +* [`@Type` annotation type parameter migration (Community Edition)](../hibernate/typeannotationparameter-community-edition) +* [Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` (Community Edition)](../hibernate/typedescriptortotype-community-edition) * [Migrate deprecated `javax.persistence` packages to `jakarta.persistence`](../java/migrate/jakarta/javaxpersistencetojakartapersistence) * [Migrate xmlns entries in `persistence.xml` files](../java/migrate/jakarta/javaxpersistencexmltojakartapersistencexml) -* [Migrate Hibernate Types to Hypersistence Utils 6.0](../hibernate/migratetohypersistenceutilshibernate6/0) +* [Migrate Hibernate Types to Hypersistence Utils 6.0 (Community Edition)](../hibernate/migratetohypersistenceutilshibernate6/0-community-edition) @@ -46,7 +46,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernate60 -displayName: Migrate to Hibernate 6.0.x +displayName: Migrate to Hibernate 6.0.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate 6.0.x. The hibernate dependencies will be updated to use the new `org.hibernate.orm` group ID and the recipe will make changes necessary to use Hibernate with Jakarta EE 9.0. recipeList: @@ -68,7 +68,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.1.x](/recipes/hibernate/migratetohibernate61.md) +* [Migrate to Hibernate 6.1.x (Community Edition)](/recipes/hibernate/migratetohibernate61-community-edition.md) ## Examples ##### Example 1 diff --git a/docs/recipes/hibernate/migratetohibernate61.md b/docs/recipes/hibernate/migratetohibernate61-community-edition.md similarity index 96% rename from docs/recipes/hibernate/migratetohibernate61.md rename to docs/recipes/hibernate/migratetohibernate61-community-edition.md index 50880ac4a2..e6c980353a 100644 --- a/docs/recipes/hibernate/migratetohibernate61.md +++ b/docs/recipes/hibernate/migratetohibernate61-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.1.x" +sidebar_label: "Migrate to Hibernate 6.1.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.1.x +# Migrate to Hibernate 6.1.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernate61** @@ -28,7 +28,7 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate to Hibernate 6.0.x](../hibernate/migratetohibernate60) +* [Migrate to Hibernate 6.0.x (Community Edition)](../hibernate/migratetohibernate60-community-edition) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` @@ -42,7 +42,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernate61 -displayName: Migrate to Hibernate 6.1.x +displayName: Migrate to Hibernate 6.1.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate 6.1.x. The hibernate dependencies will be updated to use the new org.hibernate.orm group ID and the recipe will make changes necessary to use Hibernate with Jakarta EE 9.0. recipeList: @@ -60,9 +60,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.2.x](/recipes/hibernate/migratetohibernate62.md) -* [Migrate to Hibernate for Jakarta EE 9](/recipes/com/oracle/weblogic/rewrite/hibernate/migratehibernatetojakartaee9.md) -* [Migrate to Spring Boot 3.0](/recipes/java/spring/boot3/upgradespringboot_3_0.md) +* [Migrate to Hibernate 6.2.x (Community Edition)](/recipes/hibernate/migratetohibernate62-community-edition.md) ## Examples ##### Example 1 diff --git a/docs/recipes/hibernate/migratetohibernate62.md b/docs/recipes/hibernate/migratetohibernate62-community-edition.md similarity index 93% rename from docs/recipes/hibernate/migratetohibernate62.md rename to docs/recipes/hibernate/migratetohibernate62-community-edition.md index a0bdb3e741..6a0df661b8 100644 --- a/docs/recipes/hibernate/migratetohibernate62.md +++ b/docs/recipes/hibernate/migratetohibernate62-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.2.x" +sidebar_label: "Migrate to Hibernate 6.2.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.2.x +# Migrate to Hibernate 6.2.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernate62** @@ -28,13 +28,13 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate to Hibernate 6.1.x](../hibernate/migratetohibernate61) -* [Migrate Hibernate Types to Hypersistence Utils 6.2](../hibernate/migratetohypersistenceutilshibernate6/2) +* [Migrate to Hibernate 6.1.x (Community Edition)](../hibernate/migratetohibernate61-community-edition) +* [Migrate Hibernate Types to Hypersistence Utils 6.2 (Community Edition)](../hibernate/migratetohypersistenceutilshibernate6/2-community-edition) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` * newVersion: `6.2.x` -* [Replace `@LazyCollection` with `jakarta.persistence.FetchType`](../hibernate/replacelazycollectionannotation) +* [Replace `@LazyCollection` with `jakarta.persistence.FetchType` (Community Edition)](../hibernate/replacelazycollectionannotation-community-edition) @@ -44,7 +44,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernate62 -displayName: Migrate to Hibernate 6.2.x +displayName: Migrate to Hibernate 6.2.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate 6.2.x. recipeList: @@ -64,8 +64,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.3.x](/recipes/hibernate/migratetohibernate63.md) -* [Migrate to Spring Boot 3.1](/recipes/java/spring/boot3/upgradespringboot_3_1.md) +* [Migrate to Hibernate 6.3.x (Community Edition)](/recipes/hibernate/migratetohibernate63-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohibernate63.md b/docs/recipes/hibernate/migratetohibernate63-community-edition.md similarity index 92% rename from docs/recipes/hibernate/migratetohibernate63.md rename to docs/recipes/hibernate/migratetohibernate63-community-edition.md index 1c2867104f..fb501d6bae 100644 --- a/docs/recipes/hibernate/migratetohibernate63.md +++ b/docs/recipes/hibernate/migratetohibernate63-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.3.x" +sidebar_label: "Migrate to Hibernate 6.3.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.3.x +# Migrate to Hibernate 6.3.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernate63** @@ -28,9 +28,9 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate to Hibernate 6.2.x](../hibernate/migratetohibernate62) -* [Migrate Hibernate Types to Hypersistence Utils 6.2](../hibernate/migratetohypersistenceutilshibernate6/2) -* [Migrate Hibernate Types to Hypersistence Utils 6.3](../hibernate/migratetohypersistenceutilshibernate6/3) +* [Migrate to Hibernate 6.2.x (Community Edition)](../hibernate/migratetohibernate62-community-edition) +* [Migrate Hibernate Types to Hypersistence Utils 6.2 (Community Edition)](../hibernate/migratetohypersistenceutilshibernate6/2-community-edition) +* [Migrate Hibernate Types to Hypersistence Utils 6.3 (Community Edition)](../hibernate/migratetohypersistenceutilshibernate6/3-community-edition) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` @@ -44,7 +44,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernate63 -displayName: Migrate to Hibernate 6.3.x +displayName: Migrate to Hibernate 6.3.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate 6.3.x. recipeList: @@ -64,7 +64,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.4.x](/recipes/hibernate/migratetohibernate64.md) +* [Migrate to Hibernate 6.4.x (Community Edition)](/recipes/hibernate/migratetohibernate64-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohibernate64.md b/docs/recipes/hibernate/migratetohibernate64-community-edition.md similarity index 94% rename from docs/recipes/hibernate/migratetohibernate64.md rename to docs/recipes/hibernate/migratetohibernate64-community-edition.md index 305617db23..9fc6c86965 100644 --- a/docs/recipes/hibernate/migratetohibernate64.md +++ b/docs/recipes/hibernate/migratetohibernate64-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.4.x" +sidebar_label: "Migrate to Hibernate 6.4.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.4.x +# Migrate to Hibernate 6.4.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernate64** @@ -28,12 +28,12 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate to Hibernate 6.3.x](../hibernate/migratetohibernate63) +* [Migrate to Hibernate 6.3.x (Community Edition)](../hibernate/migratetohibernate63-community-edition) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` * newVersion: `6.4.x` -* [Remove invalid `@GeneratedValue` annotation](../hibernate/removeinvalidhibernategeneratedvalueannotation) +* [Remove invalid `@GeneratedValue` annotation (Community Edition)](../hibernate/removeinvalidhibernategeneratedvalueannotation-community-edition) @@ -43,7 +43,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernate64 -displayName: Migrate to Hibernate 6.4.x +displayName: Migrate to Hibernate 6.4.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate 6.4.x. recipeList: @@ -62,8 +62,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.5.x](/recipes/hibernate/migratetohibernate65.md) -* [Migrate to Spring Boot 3.2](/recipes/java/spring/boot3/upgradespringboot_3_2.md) +* [Migrate to Hibernate 6.5.x (Community Edition)](/recipes/hibernate/migratetohibernate65-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohibernate65.md b/docs/recipes/hibernate/migratetohibernate65-community-edition.md similarity index 94% rename from docs/recipes/hibernate/migratetohibernate65.md rename to docs/recipes/hibernate/migratetohibernate65-community-edition.md index d3c8e07f2b..9a8ce8c6bd 100644 --- a/docs/recipes/hibernate/migratetohibernate65.md +++ b/docs/recipes/hibernate/migratetohibernate65-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.5.x" +sidebar_label: "Migrate to Hibernate 6.5.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.5.x +# Migrate to Hibernate 6.5.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernate65** @@ -28,12 +28,12 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate to Hibernate 6.4.x](../hibernate/migratetohibernate64) +* [Migrate to Hibernate 6.4.x (Community Edition)](../hibernate/migratetohibernate64-community-edition) * [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) * groupId: `org.hibernate.orm` * artifactId: `*` * newVersion: `6.5.x` -* [Migration of `ResultCheckStyle` to `Expectation`](../hibernate/migrateresultcheckstyletoexpectation) +* [Migration of `ResultCheckStyle` to `Expectation` (Community Edition)](../hibernate/migrateresultcheckstyletoexpectation-community-edition) @@ -43,7 +43,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernate65 -displayName: Migrate to Hibernate 6.5.x +displayName: Migrate to Hibernate 6.5.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate 6.5.x. recipeList: @@ -62,8 +62,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.6.x](/recipes/hibernate/migratetohibernate66.md) -* [Migrate to Spring Boot 3.3](/recipes/java/spring/boot3/upgradespringboot_3_3.md) +* [Migrate to Hibernate 6.6.x (Community Edition)](/recipes/hibernate/migratetohibernate66-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohibernate66-community-edition.md b/docs/recipes/hibernate/migratetohibernate66-community-edition.md new file mode 100644 index 0000000000..b15b9d84fa --- /dev/null +++ b/docs/recipes/hibernate/migratetohibernate66-community-edition.md @@ -0,0 +1,254 @@ +--- +sidebar_label: "Migrate to Hibernate 6.6.x (Community Edition)" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate to Hibernate 6.6.x (Community Edition) + +**org.openrewrite.hibernate.MigrateToHibernate66** + +_This recipe will apply changes commonly needed when migrating to Hibernate 6.6.x._ + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-hibernate/blob/main/src/main/resources/META-INF/rewrite/hibernate-6.6.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-hibernate/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-hibernate/) + +:::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 + + + +* [Migrate to Hibernate 6.5.x (Community Edition)](../hibernate/migratetohibernate65-community-edition) +* [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) + * groupId: `org.hibernate.orm` + * artifactId: `*` + * newVersion: `6.6.x` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.hibernate.MigrateToHibernate66 +displayName: Migrate to Hibernate 6.6.x (Community Edition) +description: | + This recipe will apply changes commonly needed when migrating to Hibernate 6.6.x. +recipeList: + - org.openrewrite.hibernate.MigrateToHibernate65 + - org.openrewrite.java.dependencies.UpgradeDependencyVersion: + groupId: org.hibernate.orm + artifactId: "*" + newVersion: 6.6.x + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Hibernate 6.6.x (Moderne Edition)](/recipes/hibernate/migratetohibernate66-moderne-edition.md) +* [Migrate to Hibernate 7.0.x (Community Edition)](/recipes/hibernate/migratetohibernate70-community-edition.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-hibernate` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.hibernate.MigrateToHibernate66") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}") + } + rewrite { + activeRecipe("org.openrewrite.hibernate.MigrateToHibernate66") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.hibernate.MigrateToHibernate66 + + + + + org.openrewrite.recipe + rewrite-hibernate + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-hibernate:RELEASE -Drewrite.activeRecipes=org.openrewrite.hibernate.MigrateToHibernate66 -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateToHibernate66 +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} +``` + + + +## 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 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/hibernate/migratetohibernate66.md b/docs/recipes/hibernate/migratetohibernate66-moderne-edition.md similarity index 93% rename from docs/recipes/hibernate/migratetohibernate66.md rename to docs/recipes/hibernate/migratetohibernate66-moderne-edition.md index 56b1f3c5fa..2373e28adb 100644 --- a/docs/recipes/hibernate/migratetohibernate66.md +++ b/docs/recipes/hibernate/migratetohibernate66-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 6.6.x" +sidebar_label: "Migrate to Hibernate 6.6.x (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 6.6.x +# Migrate to Hibernate 6.6.x (Moderne Edition) **io.moderne.hibernate.MigrateToHibernate66** @@ -23,8 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) -* [Migrate to Spring Boot 3.4 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-moderne-edition.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohibernate70-community-edition.md b/docs/recipes/hibernate/migratetohibernate70-community-edition.md new file mode 100644 index 0000000000..fbaf503821 --- /dev/null +++ b/docs/recipes/hibernate/migratetohibernate70-community-edition.md @@ -0,0 +1,262 @@ +--- +sidebar_label: "Migrate to Hibernate 7.0.x (Community Edition)" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate to Hibernate 7.0.x (Community Edition) + +**org.openrewrite.hibernate.MigrateToHibernate70** + +_This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x._ + +## Recipe source + +[GitHub](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/) + +:::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 + + + +* [Migrate to Hibernate 6.6.x (Community Edition)](../hibernate/migratetohibernate66-community-edition) +* [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) + * groupId: `org.hibernate.orm` + * artifactId: `*` + * newVersion: `7.0.x` +* [Change Gradle or Maven dependency](../java/dependencies/changedependency) + * oldGroupId: `org.hibernate.orm` + * oldArtifactId: `hibernate-jpamodelgen` + * newArtifactId: `hibernate-processor` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.hibernate.MigrateToHibernate70 +displayName: Migrate to Hibernate 7.0.x (Community Edition) +description: | + This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x. +recipeList: + - org.openrewrite.hibernate.MigrateToHibernate66 + - org.openrewrite.java.dependencies.UpgradeDependencyVersion: + groupId: org.hibernate.orm + artifactId: "*" + newVersion: 7.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.hibernate.orm + oldArtifactId: hibernate-jpamodelgen + newArtifactId: hibernate-processor + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) +* [Migrate to Hibernate 7.1.x (Community Edition)](/recipes/hibernate/migratetohibernate71-community-edition.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-hibernate` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.hibernate.MigrateToHibernate70") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}") + } + rewrite { + activeRecipe("org.openrewrite.hibernate.MigrateToHibernate70") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.hibernate.MigrateToHibernate70 + + + + + org.openrewrite.recipe + rewrite-hibernate + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-hibernate:RELEASE -Drewrite.activeRecipes=org.openrewrite.hibernate.MigrateToHibernate70 -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateToHibernate70 +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} +``` + + + +## 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 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/hibernate/migratetohibernate70.md b/docs/recipes/hibernate/migratetohibernate70-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/migratetohibernate70.md rename to docs/recipes/hibernate/migratetohibernate70-moderne-edition.md index 2406626e8d..f8b189da72 100644 --- a/docs/recipes/hibernate/migratetohibernate70.md +++ b/docs/recipes/hibernate/migratetohibernate70-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 7.0.x" +sidebar_label: "Migrate to Hibernate 7.0.x (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 7.0.x +# Migrate to Hibernate 7.0.x (Moderne Edition) **io.moderne.hibernate.MigrateToHibernate70** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Hibernate 7.1.x (Moderne Edition)](/recipes/hibernate/migratetohibernate71-moderne-edition.md) ## Examples ##### Example 1 diff --git a/docs/recipes/hibernate/migratetohibernate71-community-edition.md b/docs/recipes/hibernate/migratetohibernate71-community-edition.md new file mode 100644 index 0000000000..53371f37b9 --- /dev/null +++ b/docs/recipes/hibernate/migratetohibernate71-community-edition.md @@ -0,0 +1,253 @@ +--- +sidebar_label: "Migrate to Hibernate 7.1.x (Community Edition)" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate to Hibernate 7.1.x (Community Edition) + +**org.openrewrite.hibernate.MigrateToHibernate71** + +_This recipe will apply changes commonly needed when migrating to Hibernate 7.1.x._ + +## Recipe source + +[GitHub](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/) + +:::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 + + + +* [Migrate to Hibernate 7.0.x (Community Edition)](../hibernate/migratetohibernate70-community-edition) +* [Upgrade Gradle or Maven dependency versions](../java/dependencies/upgradedependencyversion) + * groupId: `org.hibernate.orm` + * artifactId: `*` + * newVersion: `7.1.x` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.hibernate.MigrateToHibernate71 +displayName: Migrate to Hibernate 7.1.x (Community Edition) +description: | + This recipe will apply changes commonly needed when migrating to Hibernate 7.1.x. +recipeList: + - org.openrewrite.hibernate.MigrateToHibernate70 + - org.openrewrite.java.dependencies.UpgradeDependencyVersion: + groupId: org.hibernate.orm + artifactId: "*" + newVersion: 7.1.x + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Hibernate 7.1.x (Moderne Edition)](/recipes/hibernate/migratetohibernate71-moderne-edition.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-hibernate` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.hibernate.MigrateToHibernate71") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}") + } + rewrite { + activeRecipe("org.openrewrite.hibernate.MigrateToHibernate71") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.hibernate.MigrateToHibernate71 + + + + + org.openrewrite.recipe + rewrite-hibernate + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-hibernate:RELEASE -Drewrite.activeRecipes=org.openrewrite.hibernate.MigrateToHibernate71 -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateToHibernate71 +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-hibernate:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}} +``` + + + +## 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 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/hibernate/migratetohibernate71-moderne-edition.md b/docs/recipes/hibernate/migratetohibernate71-moderne-edition.md new file mode 100644 index 0000000000..5456b8f2c3 --- /dev/null +++ b/docs/recipes/hibernate/migratetohibernate71-moderne-edition.md @@ -0,0 +1,107 @@ +--- +sidebar_label: "Migrate to Hibernate 7.1.x (Moderne Edition)" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate to Hibernate 7.1.x (Moderne Edition) + +**io.moderne.hibernate.MigrateToHibernate71** + +_This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateToHibernate71 +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-hibernate:{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}} +``` + + + +## 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 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/hibernate/migratetohibernatedependencies60.md b/docs/recipes/hibernate/migratetohibernatedependencies60-community-edition.md similarity index 98% rename from docs/recipes/hibernate/migratetohibernatedependencies60.md rename to docs/recipes/hibernate/migratetohibernatedependencies60-community-edition.md index 55fe52f02e..80fcc28066 100644 --- a/docs/recipes/hibernate/migratetohibernatedependencies60.md +++ b/docs/recipes/hibernate/migratetohibernatedependencies60-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Hibernate dependencies to 6.0.x" +sidebar_label: "Migrate Hibernate dependencies to 6.0.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Hibernate dependencies to 6.0.x +# Migrate Hibernate dependencies to 6.0.x (Community Edition) **org.openrewrite.hibernate.MigrateToHibernateDependencies60** @@ -196,7 +196,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHibernateDependencies60 -displayName: Migrate Hibernate dependencies to 6.0.x +displayName: Migrate Hibernate dependencies to 6.0.x (Community Edition) description: | This recipe will migrate any existing dependencies on Hibernate 5.x to the latest 6.0.x release. This migration will include the adjustment to the new `org.hibernate.orm` group ID. It accounts for artifacts names that both do and do not include the `jakarta` suffix and it will change both dependencies and managed dependencies. recipeList: @@ -368,7 +368,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/README.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/README.md deleted file mode 100644 index 1dde465fea..0000000000 --- a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Migratetohypersistenceutilshibernate6 - -## Composite Recipes - -_Recipes that include further recipes, often including the individual recipes below._ - -* [Migrate Hibernate Types to Hypersistence Utils 6.0](./0.md) - -## Recipes - -* [Migrate Hibernate Types to Hypersistence Utils 6.2](./2.md) -* [Migrate Hibernate Types to Hypersistence Utils 6.3](./3.md) - - diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/0.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate60-community-edition.md similarity index 97% rename from docs/recipes/hibernate/migratetohypersistenceutilshibernate6/0.md rename to docs/recipes/hibernate/migratetohypersistenceutilshibernate60-community-edition.md index 0f134068ad..08194d506b 100644 --- a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/0.md +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate60-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Hibernate Types to Hypersistence Utils 6.0" +sidebar_label: "Migrate Hibernate Types to Hypersistence Utils 6.0 (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Hibernate Types to Hypersistence Utils 6.0 +# Migrate Hibernate Types to Hypersistence Utils 6.0 (Community Edition) **org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.0** @@ -77,7 +77,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.0 -displayName: Migrate Hibernate Types to Hypersistence Utils 6.0 +displayName: Migrate Hibernate Types to Hypersistence Utils 6.0 (Community Edition) description: | This recipe will migrate any existing dependencies on `com.vladmihalcea:hibernate-types` to `io.hypersistence:hypersistence-utils-hibernate-60`. This migration will include the adjustment from `com.vladmihalcea` to `io.hypersistence.utils` package name. recipeList: @@ -130,7 +130,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/2.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate62-community-edition.md similarity index 95% rename from docs/recipes/hibernate/migratetohypersistenceutilshibernate6/2.md rename to docs/recipes/hibernate/migratetohypersistenceutilshibernate62-community-edition.md index 6323459e56..72f8b20808 100644 --- a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/2.md +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate62-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Hibernate Types to Hypersistence Utils 6.2" +sidebar_label: "Migrate Hibernate Types to Hypersistence Utils 6.2 (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Hibernate Types to Hypersistence Utils 6.2 +# Migrate Hibernate Types to Hypersistence Utils 6.2 (Community Edition) **org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.2** @@ -39,7 +39,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.2 -displayName: Migrate Hibernate Types to Hypersistence Utils 6.2 +displayName: Migrate Hibernate Types to Hypersistence Utils 6.2 (Community Edition) description: | This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-60` to `io.hypersistence:hypersistence-utils-hibernate-62`. recipeList: @@ -58,8 +58,8 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.2.x](/recipes/hibernate/migratetohibernate62.md) -* [Migrate to Hibernate 6.3.x](/recipes/hibernate/migratetohibernate63.md) +* [Migrate to Hibernate 6.2.x (Community Edition)](/recipes/hibernate/migratetohibernate62-community-edition.md) +* [Migrate to Hibernate 6.3.x (Community Edition)](/recipes/hibernate/migratetohibernate63-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/3.md b/docs/recipes/hibernate/migratetohypersistenceutilshibernate63-community-edition.md similarity index 96% rename from docs/recipes/hibernate/migratetohypersistenceutilshibernate6/3.md rename to docs/recipes/hibernate/migratetohypersistenceutilshibernate63-community-edition.md index 70985af7c7..5d601bd63e 100644 --- a/docs/recipes/hibernate/migratetohypersistenceutilshibernate6/3.md +++ b/docs/recipes/hibernate/migratetohypersistenceutilshibernate63-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Hibernate Types to Hypersistence Utils 6.3" +sidebar_label: "Migrate Hibernate Types to Hypersistence Utils 6.3 (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Hibernate Types to Hypersistence Utils 6.3 +# Migrate Hibernate Types to Hypersistence Utils 6.3 (Community Edition) **org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.3** @@ -39,7 +39,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.MigrateToHypersistenceUtilsHibernate6.3 -displayName: Migrate Hibernate Types to Hypersistence Utils 6.3 +displayName: Migrate Hibernate Types to Hypersistence Utils 6.3 (Community Edition) description: | This recipe will migrate any existing dependencies on `io.hypersistence:hypersistence-utils-hibernate-62` to `io.hypersistence:hypersistence-utils-hibernate-63`. recipeList: @@ -58,7 +58,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.3.x](/recipes/hibernate/migratetohibernate63.md) +* [Migrate to Hibernate 6.3.x (Community Edition)](/recipes/hibernate/migratetohibernate63-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/migrateusertype.md b/docs/recipes/hibernate/migrateusertype-community-edition.md similarity index 99% rename from docs/recipes/hibernate/migrateusertype.md rename to docs/recipes/hibernate/migrateusertype-community-edition.md index 8462b070ba..5e1c1a56c3 100644 --- a/docs/recipes/hibernate/migrateusertype.md +++ b/docs/recipes/hibernate/migrateusertype-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate `UserType` to Hibernate 6" +sidebar_label: "Migrate `UserType` to Hibernate 6 (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate `UserType` to Hibernate 6 +# Migrate `UserType` to Hibernate 6 (Community Edition) **org.openrewrite.hibernate.MigrateUserType** diff --git a/docs/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation.md b/docs/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation-community-edition.md similarity index 97% rename from docs/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation.md rename to docs/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation-community-edition.md index f683b7deeb..8d5f74ed7d 100644 --- a/docs/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation.md +++ b/docs/recipes/hibernate/removeinvalidhibernategeneratedvalueannotation-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Remove invalid `@GeneratedValue` annotation" +sidebar_label: "Remove invalid `@GeneratedValue` annotation (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Remove invalid `@GeneratedValue` annotation +# Remove invalid `@GeneratedValue` annotation (Community Edition) **org.openrewrite.hibernate.RemoveInvalidHibernateGeneratedValueAnnotation** @@ -24,7 +24,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 Hibernate 6.4.x](/recipes/hibernate/migratetohibernate64.md) +* [Migrate to Hibernate 6.4.x (Community Edition)](/recipes/hibernate/migratetohibernate64-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/replacelazycollectionannotation.md b/docs/recipes/hibernate/replacelazycollectionannotation-community-edition.md similarity index 98% rename from docs/recipes/hibernate/replacelazycollectionannotation.md rename to docs/recipes/hibernate/replacelazycollectionannotation-community-edition.md index 04e556bbed..165be184a7 100644 --- a/docs/recipes/hibernate/replacelazycollectionannotation.md +++ b/docs/recipes/hibernate/replacelazycollectionannotation-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Replace `@LazyCollection` with `jakarta.persistence.FetchType`" +sidebar_label: "Replace `@LazyCollection` with `jakarta.persistence.FetchType` (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Replace `@LazyCollection` with `jakarta.persistence.FetchType` +# Replace `@LazyCollection` with `jakarta.persistence.FetchType` (Community Edition) **org.openrewrite.hibernate.ReplaceLazyCollectionAnnotation** @@ -24,7 +24,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 Hibernate 6.2.x](/recipes/hibernate/migratetohibernate62.md) +* [Migrate to Hibernate 6.2.x (Community Edition)](/recipes/hibernate/migratetohibernate62-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/search/README.md b/docs/recipes/hibernate/search/README.md index aef163490b..91e2661688 100644 --- a/docs/recipes/hibernate/search/README.md +++ b/docs/recipes/hibernate/search/README.md @@ -2,6 +2,6 @@ ## Recipes -* [Find JPQL definitions](./findjpqldefinitions.md) +* [Find JPQL definitions (Moderne Edition)](./findjpqldefinitions-moderne-edition.md) diff --git a/docs/recipes/hibernate/search/findjpqldefinitions.md b/docs/recipes/hibernate/search/findjpqldefinitions-moderne-edition.md similarity index 98% rename from docs/recipes/hibernate/search/findjpqldefinitions.md rename to docs/recipes/hibernate/search/findjpqldefinitions-moderne-edition.md index ce4e949b21..e7695faf6a 100644 --- a/docs/recipes/hibernate/search/findjpqldefinitions.md +++ b/docs/recipes/hibernate/search/findjpqldefinitions-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Find JPQL definitions" +sidebar_label: "Find JPQL definitions (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Find JPQL definitions +# Find JPQL definitions (Moderne Edition) **io.moderne.hibernate.search.FindJPQLDefinitions** diff --git a/docs/recipes/hibernate/typeannotationparameter.md b/docs/recipes/hibernate/typeannotationparameter-community-edition.md similarity index 96% rename from docs/recipes/hibernate/typeannotationparameter.md rename to docs/recipes/hibernate/typeannotationparameter-community-edition.md index 7db23811d8..c381f6f30d 100644 --- a/docs/recipes/hibernate/typeannotationparameter.md +++ b/docs/recipes/hibernate/typeannotationparameter-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "`@Type` annotation type parameter migration" +sidebar_label: "`@Type` annotation type parameter migration (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# `@Type` annotation type parameter migration +# `@Type` annotation type parameter migration (Community Edition) **org.openrewrite.hibernate.TypeAnnotationParameter** @@ -24,7 +24,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 Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Example diff --git a/docs/recipes/hibernate/typedescriptortotype.md b/docs/recipes/hibernate/typedescriptortotype-community-edition.md similarity index 97% rename from docs/recipes/hibernate/typedescriptortotype.md rename to docs/recipes/hibernate/typedescriptortotype-community-edition.md index 97b305fc81..bf3b62dc35 100644 --- a/docs/recipes/hibernate/typedescriptortotype.md +++ b/docs/recipes/hibernate/typedescriptortotype-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType`" +sidebar_label: "Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` +# Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` (Community Edition) **org.openrewrite.hibernate.TypeDescriptorToType** @@ -43,7 +43,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.TypeDescriptorToType -displayName: Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` +displayName: Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` (Community Edition) description: | Rename `JavaTypeDescriptor` and `SqlTypeDescriptor` to `JavaType` and `SqlType` respectively. See https://github.com/hibernate/hibernate-orm/blob/6.0/migration-guide.adoc#type-system for more details. recipeList: @@ -62,7 +62,7 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.0.x](/recipes/hibernate/migratetohibernate60.md) +* [Migrate to Hibernate 6.0.x (Community Edition)](/recipes/hibernate/migratetohibernate60-community-edition.md) ## Usage diff --git a/docs/recipes/hibernate/update66/README.md b/docs/recipes/hibernate/update66/README.md index 7f50eaf514..de7c71cc38 100644 --- a/docs/recipes/hibernate/update66/README.md +++ b/docs/recipes/hibernate/update66/README.md @@ -4,11 +4,11 @@ _Recipes that include further recipes, often including the individual recipes below._ -* [Migrate Hibernate CascadeType constants](./migratecascadetypes.md) +* [Migrate Hibernate CascadeType constants (Moderne Edition)](./migratecascadetypes-moderne-edition.md) ## Recipes -* [Fix conflicting class type annotation Hibernate 6.6](./fixconflictingclasstypeannotations.md) -* [Remove table from single table inherited entity](./removetablefrominheritedentity.md) +* [Fix conflicting class type annotation Hibernate 6.6 (Moderne Edition)](./fixconflictingclasstypeannotations-moderne-edition.md) +* [Remove table from single table inherited entity (Moderne Edition)](./removetablefrominheritedentity-moderne-edition.md) diff --git a/docs/recipes/hibernate/update66/fixconflictingclasstypeannotations.md b/docs/recipes/hibernate/update66/fixconflictingclasstypeannotations-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update66/fixconflictingclasstypeannotations.md rename to docs/recipes/hibernate/update66/fixconflictingclasstypeannotations-moderne-edition.md index 02eafe1fef..5ab79102d2 100644 --- a/docs/recipes/hibernate/update66/fixconflictingclasstypeannotations.md +++ b/docs/recipes/hibernate/update66/fixconflictingclasstypeannotations-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Fix conflicting class type annotation Hibernate 6.6" +sidebar_label: "Fix conflicting class type annotation Hibernate 6.6 (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Fix conflicting class type annotation Hibernate 6.6 +# Fix conflicting class type annotation Hibernate 6.6 (Moderne Edition) **io.moderne.hibernate.update66.FixConflictingClassTypeAnnotations** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.6.x](/recipes/hibernate/migratetohibernate66.md) +* [Migrate to Hibernate 6.6.x (Moderne Edition)](/recipes/hibernate/migratetohibernate66-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update66/migratecascadetypes.md b/docs/recipes/hibernate/update66/migratecascadetypes-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update66/migratecascadetypes.md rename to docs/recipes/hibernate/update66/migratecascadetypes-moderne-edition.md index d242c2d065..d018fffeb2 100644 --- a/docs/recipes/hibernate/update66/migratecascadetypes.md +++ b/docs/recipes/hibernate/update66/migratecascadetypes-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Hibernate CascadeType constants" +sidebar_label: "Migrate Hibernate CascadeType constants (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Hibernate CascadeType constants +# Migrate Hibernate CascadeType constants (Moderne Edition) **io.moderne.hibernate.update66.MigrateCascadeTypes** @@ -26,7 +26,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.6.x](/recipes/hibernate/migratetohibernate66.md) +* [Migrate to Hibernate 6.6.x (Moderne Edition)](/recipes/hibernate/migratetohibernate66-moderne-edition.md) ## Examples ##### Example 1 diff --git a/docs/recipes/hibernate/update66/removetablefrominheritedentity.md b/docs/recipes/hibernate/update66/removetablefrominheritedentity-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update66/removetablefrominheritedentity.md rename to docs/recipes/hibernate/update66/removetablefrominheritedentity-moderne-edition.md index ae4f3f54f9..60cad0894d 100644 --- a/docs/recipes/hibernate/update66/removetablefrominheritedentity.md +++ b/docs/recipes/hibernate/update66/removetablefrominheritedentity-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Remove table from single table inherited entity" +sidebar_label: "Remove table from single table inherited entity (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Remove table from single table inherited entity +# Remove table from single table inherited entity (Moderne Edition) **io.moderne.hibernate.update66.RemoveTableFromInheritedEntity** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 6.6.x](/recipes/hibernate/migratetohibernate66.md) +* [Migrate to Hibernate 6.6.x (Moderne Edition)](/recipes/hibernate/migratetohibernate66-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/README.md b/docs/recipes/hibernate/update70/README.md index 45fe082dff..4b7a21d2df 100644 --- a/docs/recipes/hibernate/update70/README.md +++ b/docs/recipes/hibernate/update70/README.md @@ -4,28 +4,28 @@ _Recipes that include further recipes, often including the individual recipes below._ -* [Migrate to Hibernate 7 JFR APIs](./migratetohibernate7jfr.md) +* [Migrate to Hibernate 7 JFR APIs (Moderne Edition)](./migratetohibernate7jfr-moderne-edition.md) ## Recipes -* [Migrate @JdbcType to @JdbcTypeCode](./migratejdbctypetojdbctypecode.md) -* [Migrate `Configurable.configure()` to use `GeneratorCreationContext`](./migrateconfigurabletogeneratorcreationcontext.md) -* [Migrate Hibernate `Integrator#integrate` method](./migrateintegratormethod.md) -* [Migrate LockOptions to direct parameters](./migratelockoptionstodirectparameters.md) -* [Migrate `MetamodelImplementor` to Hibernate 7.0](./migratemetamodelimplementor.md) -* [Migrate NaturalIdLoadAccess method calls](./migratenaturalidloadaccess.md) -* [Migrate NaturalIdMultiLoadAccess method calls](./migratenaturalidmultiloadaccess.md) -* [Migrate Session interface method calls](./migratesessioninterface.md) -* [Migrate Session save/update/delete method calls](./migratesessiontodefertojpa.md) -* [Migrate implicit cascade=PERSIST for @Id and @MapsId associations](./addcascadepersisttoidmappedassociations.md) -* [Migrate `setFlushMode()` to `setQueryFlushMode()`](./migratesetflushmodetosetqueryflushmode.md) -* [Migrate to @TargetEmbeddable](./migratetotargetembeddable.md) -* [Null safe Transaction#getTimeout()](./unboxingtransactiontimeout.md) -* [Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations](./compositeusertypesessionfactoryimplementor.md) -* [Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations](./usertypesharedsessioncontractimplementor.md) -* [Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` invocations](./usertypenullsafegetsharedsessioncontractimplementorrecipe.md) -* [Remove unnecessary cast to `Session` for `SessionFactory.createEntityManager()`](./removeunnecessarycasttosession.md) -* [Replace Session.buildLockRequest with LockOptions](./replacesessionlockrequest.md) -* [Replace hibernate annotations with Jakarta variants](./replacehibernatewithjakartaannotations.md) +* [Migrate @JdbcType to @JdbcTypeCode (Moderne Edition)](./migratejdbctypetojdbctypecode-moderne-edition.md) +* [Migrate `Configurable.configure()` to use `GeneratorCreationContext` (Moderne Edition)](./migrateconfigurabletogeneratorcreationcontext-moderne-edition.md) +* [Migrate Hibernate `Integrator#integrate` method (Moderne Edition)](./migrateintegratormethod-moderne-edition.md) +* [Migrate LockOptions to direct parameters (Moderne Edition)](./migratelockoptionstodirectparameters-moderne-edition.md) +* [Migrate `MetamodelImplementor` to Hibernate 7.0 (Moderne Edition)](./migratemetamodelimplementor-moderne-edition.md) +* [Migrate NaturalIdLoadAccess method calls (Moderne Edition)](./migratenaturalidloadaccess-moderne-edition.md) +* [Migrate NaturalIdMultiLoadAccess method calls (Moderne Edition)](./migratenaturalidmultiloadaccess-moderne-edition.md) +* [Migrate Session interface method calls (Moderne Edition)](./migratesessioninterface-moderne-edition.md) +* [Migrate Session save/update/delete method calls (Moderne Edition)](./migratesessiontodefertojpa-moderne-edition.md) +* [Migrate implicit cascade=PERSIST for @Id and @MapsId associations (Moderne Edition)](./addcascadepersisttoidmappedassociations-moderne-edition.md) +* [Migrate `setFlushMode()` to `setQueryFlushMode()` (Moderne Edition)](./migratesetflushmodetosetqueryflushmode-moderne-edition.md) +* [Migrate to @TargetEmbeddable (Moderne Edition)](./migratetotargetembeddable-moderne-edition.md) +* [Null safe Transaction#getTimeout() (Moderne Edition)](./unboxingtransactiontimeout-moderne-edition.md) +* [Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations (Moderne Edition)](./compositeusertypesessionfactoryimplementor-moderne-edition.md) +* [Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations (Moderne Edition)](./usertypesharedsessioncontractimplementor-moderne-edition.md) +* [Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` invocations (Moderne Edition)](./usertypenullsafegetsharedsessioncontractimplementorrecipe-moderne-edition.md) +* [Remove unnecessary cast to `Session` for `SessionFactory.createEntityManager()` (Moderne Edition)](./removeunnecessarycasttosession-moderne-edition.md) +* [Replace Session.buildLockRequest with LockOptions (Moderne Edition)](./replacesessionlockrequest-moderne-edition.md) +* [Replace hibernate annotations with Jakarta variants (Moderne Edition)](./replacehibernatewithjakartaannotations-moderne-edition.md) diff --git a/docs/recipes/hibernate/update70/addcascadepersisttoidmappedassociations.md b/docs/recipes/hibernate/update70/addcascadepersisttoidmappedassociations-moderne-edition.md similarity index 97% rename from docs/recipes/hibernate/update70/addcascadepersisttoidmappedassociations.md rename to docs/recipes/hibernate/update70/addcascadepersisttoidmappedassociations-moderne-edition.md index 19278a5b6a..ff874ded9b 100644 --- a/docs/recipes/hibernate/update70/addcascadepersisttoidmappedassociations.md +++ b/docs/recipes/hibernate/update70/addcascadepersisttoidmappedassociations-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate implicit cascade=PERSIST for @Id and @MapsId associations" +sidebar_label: "Migrate implicit cascade=PERSIST for @Id and @MapsId associations (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate implicit cascade=PERSIST for @Id and @MapsId associations +# Migrate implicit cascade=PERSIST for @Id and @MapsId associations (Moderne Edition) **io.moderne.hibernate.update70.AddCascadePersistToIdMappedAssociations** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor.md b/docs/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor.md rename to docs/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor-moderne-edition.md index 2a9ead9a52..5d3e6136cc 100644 --- a/docs/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor.md +++ b/docs/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations" +sidebar_label: "Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations +# Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations (Moderne Edition) **io.moderne.hibernate.update70.CompositeUserTypeSessionFactoryImplementor** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migrateconfigurabletogeneratorcreationcontext.md b/docs/recipes/hibernate/update70/migrateconfigurabletogeneratorcreationcontext-moderne-edition.md similarity index 97% rename from docs/recipes/hibernate/update70/migrateconfigurabletogeneratorcreationcontext.md rename to docs/recipes/hibernate/update70/migrateconfigurabletogeneratorcreationcontext-moderne-edition.md index 7ec17d18d4..dcc987828b 100644 --- a/docs/recipes/hibernate/update70/migrateconfigurabletogeneratorcreationcontext.md +++ b/docs/recipes/hibernate/update70/migrateconfigurabletogeneratorcreationcontext-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate `Configurable.configure()` to use `GeneratorCreationContext`" +sidebar_label: "Migrate `Configurable.configure()` to use `GeneratorCreationContext` (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate `Configurable.configure()` to use `GeneratorCreationContext` +# Migrate `Configurable.configure()` to use `GeneratorCreationContext` (Moderne Edition) **io.moderne.hibernate.update70.MigrateConfigurableToGeneratorCreationContext** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migrateintegratormethod.md b/docs/recipes/hibernate/update70/migrateintegratormethod-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/migrateintegratormethod.md rename to docs/recipes/hibernate/update70/migrateintegratormethod-moderne-edition.md index 8e1248ccb6..4dc80969ac 100644 --- a/docs/recipes/hibernate/update70/migrateintegratormethod.md +++ b/docs/recipes/hibernate/update70/migrateintegratormethod-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Hibernate `Integrator#integrate` method" +sidebar_label: "Migrate Hibernate `Integrator#integrate` method (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Hibernate `Integrator#integrate` method +# Migrate Hibernate `Integrator#integrate` method (Moderne Edition) **io.moderne.hibernate.update70.MigrateIntegratorMethod** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratejdbctypetojdbctypecode.md b/docs/recipes/hibernate/update70/migratejdbctypetojdbctypecode-moderne-edition.md similarity index 97% rename from docs/recipes/hibernate/update70/migratejdbctypetojdbctypecode.md rename to docs/recipes/hibernate/update70/migratejdbctypetojdbctypecode-moderne-edition.md index 65311b5dfa..e55d57c3ef 100644 --- a/docs/recipes/hibernate/update70/migratejdbctypetojdbctypecode.md +++ b/docs/recipes/hibernate/update70/migratejdbctypetojdbctypecode-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate @JdbcType to @JdbcTypeCode" +sidebar_label: "Migrate @JdbcType to @JdbcTypeCode (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate @JdbcType to @JdbcTypeCode +# Migrate @JdbcType to @JdbcTypeCode (Moderne Edition) **io.moderne.hibernate.update70.MigrateJdbcTypeToJdbcTypeCode** diff --git a/docs/recipes/hibernate/update70/migratelockoptionstodirectparameters.md b/docs/recipes/hibernate/update70/migratelockoptionstodirectparameters-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update70/migratelockoptionstodirectparameters.md rename to docs/recipes/hibernate/update70/migratelockoptionstodirectparameters-moderne-edition.md index 4e0f45b51b..857c84a0ab 100644 --- a/docs/recipes/hibernate/update70/migratelockoptionstodirectparameters.md +++ b/docs/recipes/hibernate/update70/migratelockoptionstodirectparameters-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate LockOptions to direct parameters" +sidebar_label: "Migrate LockOptions to direct parameters (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate LockOptions to direct parameters +# Migrate LockOptions to direct parameters (Moderne Edition) **io.moderne.hibernate.update70.MigrateLockOptionsToDirectParameters** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratemetamodelimplementor.md b/docs/recipes/hibernate/update70/migratemetamodelimplementor-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/migratemetamodelimplementor.md rename to docs/recipes/hibernate/update70/migratemetamodelimplementor-moderne-edition.md index c5574f526e..a662c8ee3d 100644 --- a/docs/recipes/hibernate/update70/migratemetamodelimplementor.md +++ b/docs/recipes/hibernate/update70/migratemetamodelimplementor-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate `MetamodelImplementor` to Hibernate 7.0" +sidebar_label: "Migrate `MetamodelImplementor` to Hibernate 7.0 (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate `MetamodelImplementor` to Hibernate 7.0 +# Migrate `MetamodelImplementor` to Hibernate 7.0 (Moderne Edition) **io.moderne.hibernate.update70.MigrateMetamodelImplementor** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratenaturalidloadaccess.md b/docs/recipes/hibernate/update70/migratenaturalidloadaccess-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update70/migratenaturalidloadaccess.md rename to docs/recipes/hibernate/update70/migratenaturalidloadaccess-moderne-edition.md index 12d233184d..e30e62e10d 100644 --- a/docs/recipes/hibernate/update70/migratenaturalidloadaccess.md +++ b/docs/recipes/hibernate/update70/migratenaturalidloadaccess-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate NaturalIdLoadAccess method calls" +sidebar_label: "Migrate NaturalIdLoadAccess method calls (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate NaturalIdLoadAccess method calls +# Migrate NaturalIdLoadAccess method calls (Moderne Edition) **io.moderne.hibernate.update70.MigrateNaturalIdLoadAccess** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratenaturalidmultiloadaccess.md b/docs/recipes/hibernate/update70/migratenaturalidmultiloadaccess-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update70/migratenaturalidmultiloadaccess.md rename to docs/recipes/hibernate/update70/migratenaturalidmultiloadaccess-moderne-edition.md index 506dcbe223..738d5bb500 100644 --- a/docs/recipes/hibernate/update70/migratenaturalidmultiloadaccess.md +++ b/docs/recipes/hibernate/update70/migratenaturalidmultiloadaccess-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate NaturalIdMultiLoadAccess method calls" +sidebar_label: "Migrate NaturalIdMultiLoadAccess method calls (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate NaturalIdMultiLoadAccess method calls +# Migrate NaturalIdMultiLoadAccess method calls (Moderne Edition) **io.moderne.hibernate.update70.MigrateNaturalIdMultiLoadAccess** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratesessioninterface.md b/docs/recipes/hibernate/update70/migratesessioninterface-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update70/migratesessioninterface.md rename to docs/recipes/hibernate/update70/migratesessioninterface-moderne-edition.md index f57c4dc120..15993ab9a8 100644 --- a/docs/recipes/hibernate/update70/migratesessioninterface.md +++ b/docs/recipes/hibernate/update70/migratesessioninterface-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Session interface method calls" +sidebar_label: "Migrate Session interface method calls (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Session interface method calls +# Migrate Session interface method calls (Moderne Edition) **io.moderne.hibernate.update70.MigrateSessionInterface** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratesessiontodefertojpa.md b/docs/recipes/hibernate/update70/migratesessiontodefertojpa-moderne-edition.md similarity index 94% rename from docs/recipes/hibernate/update70/migratesessiontodefertojpa.md rename to docs/recipes/hibernate/update70/migratesessiontodefertojpa-moderne-edition.md index 901f0bc85d..4d6d32b701 100644 --- a/docs/recipes/hibernate/update70/migratesessiontodefertojpa.md +++ b/docs/recipes/hibernate/update70/migratesessiontodefertojpa-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate Session save/update/delete method calls" +sidebar_label: "Migrate Session save/update/delete method calls (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Session save/update/delete method calls +# Migrate Session save/update/delete method calls (Moderne Edition) **io.moderne.hibernate.update70.MigrateSessionToDeferToJPA** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratesetflushmodetosetqueryflushmode.md b/docs/recipes/hibernate/update70/migratesetflushmodetosetqueryflushmode-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/migratesetflushmodetosetqueryflushmode.md rename to docs/recipes/hibernate/update70/migratesetflushmodetosetqueryflushmode-moderne-edition.md index ccb18f7f91..8fd0a6a67b 100644 --- a/docs/recipes/hibernate/update70/migratesetflushmodetosetqueryflushmode.md +++ b/docs/recipes/hibernate/update70/migratesetflushmodetosetqueryflushmode-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate `setFlushMode()` to `setQueryFlushMode()`" +sidebar_label: "Migrate `setFlushMode()` to `setQueryFlushMode()` (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate `setFlushMode()` to `setQueryFlushMode()` +# Migrate `setFlushMode()` to `setQueryFlushMode()` (Moderne Edition) **io.moderne.hibernate.update70.MigrateSetFlushModeToSetQueryFlushMode** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/migratetohibernate7jfr.md b/docs/recipes/hibernate/update70/migratetohibernate7jfr-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/migratetohibernate7jfr.md rename to docs/recipes/hibernate/update70/migratetohibernate7jfr-moderne-edition.md index 623d38955e..4af81ab445 100644 --- a/docs/recipes/hibernate/update70/migratetohibernate7jfr.md +++ b/docs/recipes/hibernate/update70/migratetohibernate7jfr-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate 7 JFR APIs" +sidebar_label: "Migrate to Hibernate 7 JFR APIs (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate 7 JFR APIs +# Migrate to Hibernate 7 JFR APIs (Moderne Edition) **io.moderne.hibernate.update70.MigrateToHibernate7JFR** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Examples ##### Example 1 diff --git a/docs/recipes/hibernate/update70/migratetotargetembeddable.md b/docs/recipes/hibernate/update70/migratetotargetembeddable-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update70/migratetotargetembeddable.md rename to docs/recipes/hibernate/update70/migratetotargetembeddable-moderne-edition.md index 9c983b650f..26360ab5db 100644 --- a/docs/recipes/hibernate/update70/migratetotargetembeddable.md +++ b/docs/recipes/hibernate/update70/migratetotargetembeddable-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to @TargetEmbeddable" +sidebar_label: "Migrate to @TargetEmbeddable (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to @TargetEmbeddable +# Migrate to @TargetEmbeddable (Moderne Edition) **io.moderne.hibernate.update70.MigrateToTargetEmbeddable** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/removeunnecessarycasttosession.md b/docs/recipes/hibernate/update70/removeunnecessarycasttosession-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/removeunnecessarycasttosession.md rename to docs/recipes/hibernate/update70/removeunnecessarycasttosession-moderne-edition.md index a0c77be6d7..1544476dba 100644 --- a/docs/recipes/hibernate/update70/removeunnecessarycasttosession.md +++ b/docs/recipes/hibernate/update70/removeunnecessarycasttosession-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Remove unnecessary cast to `Session` for `SessionFactory.createEntityManager()`" +sidebar_label: "Remove unnecessary cast to `Session` for `SessionFactory.createEntityManager()` (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Remove unnecessary cast to `Session` for `SessionFactory.createEntityManager()` +# Remove unnecessary cast to `Session` for `SessionFactory.createEntityManager()` (Moderne Edition) **io.moderne.hibernate.update70.RemoveUnnecessaryCastToSession** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/replacehibernatewithjakartaannotations.md b/docs/recipes/hibernate/update70/replacehibernatewithjakartaannotations-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/replacehibernatewithjakartaannotations.md rename to docs/recipes/hibernate/update70/replacehibernatewithjakartaannotations-moderne-edition.md index ea5df0742f..a2429ce51f 100644 --- a/docs/recipes/hibernate/update70/replacehibernatewithjakartaannotations.md +++ b/docs/recipes/hibernate/update70/replacehibernatewithjakartaannotations-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Replace hibernate annotations with Jakarta variants" +sidebar_label: "Replace hibernate annotations with Jakarta variants (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Replace hibernate annotations with Jakarta variants +# Replace hibernate annotations with Jakarta variants (Moderne Edition) **io.moderne.hibernate.update70.ReplaceHibernateWithJakartaAnnotations** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/replacesessionlockrequest.md b/docs/recipes/hibernate/update70/replacesessionlockrequest-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/replacesessionlockrequest.md rename to docs/recipes/hibernate/update70/replacesessionlockrequest-moderne-edition.md index 9c5c57d139..7517ac4d94 100644 --- a/docs/recipes/hibernate/update70/replacesessionlockrequest.md +++ b/docs/recipes/hibernate/update70/replacesessionlockrequest-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Replace Session.buildLockRequest with LockOptions" +sidebar_label: "Replace Session.buildLockRequest with LockOptions (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Replace Session.buildLockRequest with LockOptions +# Replace Session.buildLockRequest with LockOptions (Moderne Edition) **io.moderne.hibernate.update70.ReplaceSessionLockRequest** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/unboxingtransactiontimeout.md b/docs/recipes/hibernate/update70/unboxingtransactiontimeout-moderne-edition.md similarity index 95% rename from docs/recipes/hibernate/update70/unboxingtransactiontimeout.md rename to docs/recipes/hibernate/update70/unboxingtransactiontimeout-moderne-edition.md index 00952f153a..59b62750c9 100644 --- a/docs/recipes/hibernate/update70/unboxingtransactiontimeout.md +++ b/docs/recipes/hibernate/update70/unboxingtransactiontimeout-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Null safe Transaction#getTimeout()" +sidebar_label: "Null safe Transaction#getTimeout() (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Null safe Transaction#getTimeout() +# Null safe Transaction#getTimeout() (Moderne Edition) **io.moderne.hibernate.update70.UnboxingTransactionTimeout** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/usertypenullsafegetsharedsessioncontractimplementorrecipe.md b/docs/recipes/hibernate/update70/usertypenullsafegetsharedsessioncontractimplementorrecipe-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/usertypenullsafegetsharedsessioncontractimplementorrecipe.md rename to docs/recipes/hibernate/update70/usertypenullsafegetsharedsessioncontractimplementorrecipe-moderne-edition.md index f5f3ec9eef..97212cd48d 100644 --- a/docs/recipes/hibernate/update70/usertypenullsafegetsharedsessioncontractimplementorrecipe.md +++ b/docs/recipes/hibernate/update70/usertypenullsafegetsharedsessioncontractimplementorrecipe-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` invocations" +sidebar_label: "Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` invocations (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` invocations +# Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` invocations (Moderne Edition) **io.moderne.hibernate.update70.UserTypeNullSafeGetSharedSessionContractImplementorRecipe** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/update70/usertypesharedsessioncontractimplementor.md b/docs/recipes/hibernate/update70/usertypesharedsessioncontractimplementor-moderne-edition.md similarity index 96% rename from docs/recipes/hibernate/update70/usertypesharedsessioncontractimplementor.md rename to docs/recipes/hibernate/update70/usertypesharedsessioncontractimplementor-moderne-edition.md index c21948bb3b..0f4730088d 100644 --- a/docs/recipes/hibernate/update70/usertypesharedsessioncontractimplementor.md +++ b/docs/recipes/hibernate/update70/usertypesharedsessioncontractimplementor-moderne-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations" +sidebar_label: "Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations (Moderne Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations +# Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations (Moderne Edition) **io.moderne.hibernate.update70.UserTypeSharedSessionContractImplementor** @@ -23,7 +23,7 @@ This recipe is available under the [Moderne Proprietary License](https://docs.mo This recipe is used as part of the following composite recipes: -* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.0.x (Moderne Edition)](/recipes/hibernate/migratetohibernate70-moderne-edition.md) ## Example diff --git a/docs/recipes/hibernate/validator/README.md b/docs/recipes/hibernate/validator/README.md index cfdf18a767..7d5943595d 100644 --- a/docs/recipes/hibernate/validator/README.md +++ b/docs/recipes/hibernate/validator/README.md @@ -2,6 +2,6 @@ ## Recipes -* [Migrate to Hibernate Validator 8.0.x](./hibernatevalidator_8_0.md) +* [Migrate to Hibernate Validator 8.0.x (Community Edition)](./hibernatevalidator_8_0-community-edition.md) diff --git a/docs/recipes/hibernate/validator/hibernatevalidator_8_0.md b/docs/recipes/hibernate/validator/hibernatevalidator_8_0-community-edition.md similarity index 98% rename from docs/recipes/hibernate/validator/hibernatevalidator_8_0.md rename to docs/recipes/hibernate/validator/hibernatevalidator_8_0-community-edition.md index a895affe8a..12348b091f 100644 --- a/docs/recipes/hibernate/validator/hibernatevalidator_8_0.md +++ b/docs/recipes/hibernate/validator/hibernatevalidator_8_0-community-edition.md @@ -1,11 +1,11 @@ --- -sidebar_label: "Migrate to Hibernate Validator 8.0.x" +sidebar_label: "Migrate to Hibernate Validator 8.0.x (Community Edition)" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate to Hibernate Validator 8.0.x +# Migrate to Hibernate Validator 8.0.x (Community Edition) **org.openrewrite.hibernate.validator.HibernateValidator\_8\_0** @@ -38,7 +38,7 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.hibernate.validator.HibernateValidator_8_0 -displayName: Migrate to Hibernate Validator 8.0.x +displayName: Migrate to Hibernate Validator 8.0.x (Community Edition) description: | This recipe will apply changes commonly needed when migrating to Hibernate Validator 8.0.x. recipeList: diff --git a/docs/recipes/java/README.md b/docs/recipes/java/README.md index 5eb2213067..5f7e20e6a4 100644 --- a/docs/recipes/java/README.md +++ b/docs/recipes/java/README.md @@ -55,6 +55,7 @@ _Basic building blocks for transforming Java code._ * [Randomize tree IDs](./randomizeid.md) * [Remove annotation](./removeannotation.md) * [Remove annotation attribute](./removeannotationattribute.md) +* [Remove elements from a method declaration `throws` clause](./removemethodthrows.md) * [Remove interface implementations](./removeimplements.md) * [Remove method invocations](./removemethodinvocations.md) * [Remove static import](./nostaticimport.md) diff --git a/docs/recipes/java/changemethodtargettostatic.md b/docs/recipes/java/changemethodtargettostatic.md index b2485bf639..da4c4746a1 100644 --- a/docs/recipes/java/changemethodtargettostatic.md +++ b/docs/recipes/java/changemethodtargettostatic.md @@ -41,6 +41,7 @@ This recipe is used as part of the following composite recipes: * [Migrate Log4j 1.x to Log4j 2.x](/recipes/java/logging/log4j/log4j1tolog4j2.md) * [Migrate SLF4J to Log4j 2.x API](/recipes/java/logging/log4j/slf4jtolog4j.md) * [Migrate from EasyMock to Mockito](/recipes/java/testing/easymock/easymocktomockito.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Prefer `Integer#compareUnsigned`](/recipes/java/migrate/guava/preferintegercompareunsigned.md) * [Prefer `Integer#compare`](/recipes/java/migrate/guava/preferintegercompare.md) * [Prefer `Integer#divideUnsigned`](/recipes/java/migrate/guava/preferintegerdivideunsigned.md) diff --git a/docs/recipes/java/changepackage.md b/docs/recipes/java/changepackage.md index e3919f2b8a..4c708fc348 100644 --- a/docs/recipes/java/changepackage.md +++ b/docs/recipes/java/changepackage.md @@ -112,6 +112,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Micrometer 1.13](/recipes/micrometer/upgrademicrometer_1_13.md) * [Migrate to Spring Batch 6.0 from 5.2](/recipes/java/spring/batch/springbatch5to6migration.md) * [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Migrates from Netty 4.1.x to Netty 4.2.x](/recipes/netty/upgradenetty_4_1_to_4_2.md) * [Migrates to Apache Commons Collections 4.x](/recipes/apache/commons/collections/upgradeapachecommonscollections_3_4.md) * [Migrates to Apache Commons Lang 3.x](/recipes/apache/commons/lang/upgradeapachecommonslang_2_3.md) @@ -121,6 +122,7 @@ This recipe is used as part of the following composite recipes: * [Quarkus 2.x migration from Quarkus 1.x](/recipes/quarkus/quarkus2/quarkus1to2migration.md) * [Rename the package name from `com.nimbusds.jose.shaded.json` to `net.minidev.json`](/recipes/java/spring/security5/renamenimbusdsjsonobjectpackagename.md) * [Replace `com.sun.net.ssl` package](/recipes/java/migrate/sunnetsslpackageunavailable.md) +* [Replace deprecated `org.springframework.boot.autoconfigure.mongo` API](/recipes/java/spring/boot4/replacedeprecatedautoconfiguremongoapi.md) * [Update Apache Commons Email to Email2 for Jakarta](/recipes/java/migrate/jakarta/updateapachecommonsemaildependencies.md) * [Update Apache Commons FileUpload2 package for EE10](/recipes/java/migrate/jakarta/updatefileupload2dependencies.md) * [Update Apache Shiro Dependencies to 2.0.x](/recipes/java/migrate/jakarta/updateapacheshirodependencies.md) diff --git a/docs/recipes/java/changetype.md b/docs/recipes/java/changetype.md index 1a415bd1f8..7c4465a655 100644 --- a/docs/recipes/java/changetype.md +++ b/docs/recipes/java/changetype.md @@ -41,6 +41,7 @@ This recipe is used as part of the following composite recipes: * [Change region related classes](/recipes/software/amazon/awssdk/v2migration/changeregiontypes.md) * [Changed types of camel AI nested headers classes](/recipes/org/apache/camel/upgrade/camel415/ainestedheadersclasses.md) * [Clean up various issues with the code.](/recipes/java/dropwizard/codecleanup.md) +* [Different java type for ServerCertificateValidator in camel-milo](/recipes/org/apache/camel/upgrade/camel416/camelmilocertificate.md) * [Each camel-debezium module has its own subpackage corresponding to the database type](/recipes/org/apache/camel/upgrade/camel49/debeziumchangetypes.md) * [JUnit Jupiter migration from JUnit 4.x](/recipes/java/testing/junit5/junit4to5migration.md) * [Maps deprecated classes from Apache HttpClient 4.5.x to suggested replacements](/recipes/apache/httpclient4/mappingdeprecatedclasses.md) @@ -88,6 +89,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from JetBrains annotations to JSpecify](/recipes/java/jspecify/migratefromjetbrainsannotations.md) * [Migrate from Micrometer annotations to JSpecify](/recipes/java/jspecify/migratefrommicrometerannotations.md) * [Migrate from Micronaut 2.x to 3.x](/recipes/java/micronaut/micronaut2to3migration.md) +* [Migrate from Micronaut Framework annotations to JSpecify](/recipes/java/jspecify/migratefrommicronautannotations.md) * [Migrate from OpenRewrite annotations to JSpecify](/recipes/java/jspecify/migratefromopenrewriteannotations.md) * [Migrate from OptaPlanner to Timefold Solver](/recipes/ai/timefold/solver/migration/fromoptaplannertotimefoldsolver.md) * [Migrate from Spring Framework annotations to JSpecify](/recipes/java/jspecify/migratefromspringframeworkannotations.md) @@ -118,6 +120,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Framework 5.1](/recipes/java/spring/framework/upgradespringframework_5_1.md) * [Migrate to Spring Framework 6.2](/recipes/java/spring/framework/upgradespringframework_6_2.md) * [Migrate to Spring Kafka 3.0](/recipes/java/spring/kafka/upgradespringkafka_3_0.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Migrate to Wicket 10.x](/recipes/org/apache/wicket/migratetowicket10.md) * [Migrate to testcontainers-java 2.x](/recipes/java/testing/testcontainers/testcontainers2migration.md) * [Migrates from Netty 4.1.x to Netty 4.2.x](/recipes/netty/upgradenetty_4_1_to_4_2.md) diff --git a/docs/recipes/java/dependencies/adddependency.md b/docs/recipes/java/dependencies/adddependency.md index 01a6c3aac1..63211042bc 100644 --- a/docs/recipes/java/dependencies/adddependency.md +++ b/docs/recipes/java/dependencies/adddependency.md @@ -47,6 +47,7 @@ This recipe is used as part of the following composite recipes: * [Add AWS SDK for Java v2 S3 Transfer Manager dependency if needed](/recipes/software/amazon/awssdk/v2migration/addtransfermanagerdependency.md) * [Add Hibernate ORM Core if has dependencies](/recipes/com/oracle/weblogic/rewrite/hibernate/addhibernateormcore61.md) * [Add JBoss LogManager's SLF4J provider](/recipes/java/logging/slf4j/addjbosslogmanagerslf4jproviderdependency.md) +* [Add Jackson2 for Jersey using JSON](/recipes/java/spring/boot4/addjackson2forjerseyjson.md) * [Add Jakarta EE 9 Servlet Dependency](/recipes/com/oracle/weblogic/rewrite/jakarta/addjakartaee9servletdependencyifusingservletcontext.md) * [Add Quarkus 2 dependencies](/recipes/quarkus/migrate/javaee/addquarkus2dependencies.md) * [Add Spring compatibility extensions for commonly used annotations](/recipes/quarkus/spring/addspringcompatibilityextensions.md) @@ -87,6 +88,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from Jakarta annotation API to JSpecify](/recipes/java/jspecify/migratefromjakartaannotationapi.md) * [Migrate from JetBrains annotations to JSpecify](/recipes/java/jspecify/migratefromjetbrainsannotations.md) * [Migrate from Micrometer annotations to JSpecify](/recipes/java/jspecify/migratefrommicrometerannotations.md) +* [Migrate from Micronaut Framework annotations to JSpecify](/recipes/java/jspecify/migratefrommicronautannotations.md) * [Migrate from OpenRewrite annotations to JSpecify](/recipes/java/jspecify/migratefromopenrewriteannotations.md) * [Migrate from Spring Framework annotations to JSpecify](/recipes/java/jspecify/migratefromspringframeworkannotations.md) * [Migrate from httpcore-nio to ApacheHttpClient 5.x core dependency](/recipes/apache/httpclient5/upgradeapachehttpcoreniodependencies.md) diff --git a/docs/recipes/java/dependencies/changedependency.md b/docs/recipes/java/dependencies/changedependency.md index 37f0afefa1..c8601c574f 100644 --- a/docs/recipes/java/dependencies/changedependency.md +++ b/docs/recipes/java/dependencies/changedependency.md @@ -130,13 +130,14 @@ This recipe is used as part of the following composite recipes: * [Migrate javax.mvc to 2.0 (Jakarta EE 9)](/recipes/com/oracle/weblogic/rewrite/jakarta/migratejavaxmvctojakartaee9.md) * [Migrate rider-spring (JUnit4) to rider-junit5 (JUnit5)](/recipes/java/testing/dbrider/migratedbriderspringtodbriderjunit5.md) * [Migrate thymeleaf dependencies to Spring Boot 3.x](/recipes/java/spring/boot3/migratethymeleafdependencies.md) +* [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) * [Migrate to Hibernate Validator 8.0.x](/recipes/hibernate/validator/hibernatevalidator_8_0.md) * [Migrate to Hibernate for Jakarta EE 9](/recipes/com/oracle/weblogic/rewrite/hibernate/migratehibernatetojakartaee9.md) * [Migrate to HtmlUnit 3.x](/recipes/java/testing/htmlunit/upgradehtmlunit_3.md) * [Migrate to JavaEE8](/recipes/java/migrate/javaee8-recipe.md) * [Migrate to New Spring Cloud Gateway Modules and Starters](/recipes/java/spring/cloud2025/springcloudgatewaydeprecatedmodulesandstarters.md) * [Migrate to Spring Boot 3.4 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-community-edition.md) -* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Spring Boot 4.0 (Community Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md) * [Migrates from Netty 4.1.x to Netty 4.2.x](/recipes/netty/upgradenetty_4_1_to_4_2.md) * [Migrates to Apache Commons Collections 4.x](/recipes/apache/commons/collections/upgradeapachecommonscollections_3_4.md) * [Migrates to Apache Commons Lang 3.x](/recipes/apache/commons/lang/upgradeapachecommonslang_2_3.md) @@ -156,6 +157,7 @@ This recipe is used as part of the following composite recipes: * [Update Fastjson for Jakarta EE 10](/recipes/java/migrate/jakarta/migratefastjsonforjakarta10.md) * [Update Jetty EE9 to Jetty EE10](/recipes/java/migrate/jakarta/jettyupgradeee10.md) * [Update Jetty9 to Jetty12](/recipes/java/migrate/jakarta/jettyupgradeee9.md) +* [Update Prometheus Pushgateway Dependency Coordinates](/recipes/java/spring/boot3/updateprometheuspushgateway.md) * [Update RestLet to 2.6.0](/recipes/java/migrate/jakarta/updaterestlet2_6.md) * [Upgrade Jackson 2.x dependencies to 3.x](/recipes/java/jackson/upgradejackson_2_3_dependencies.md) * [Upgrade Struts 6.0 dependencies](/recipes/java/struts/migrate6/upgradestruts6dependencies.md) diff --git a/docs/recipes/java/dependencies/dependencyinsight.md b/docs/recipes/java/dependencies/dependencyinsight.md index a55eda22b4..8236464f6c 100644 --- a/docs/recipes/java/dependencies/dependencyinsight.md +++ b/docs/recipes/java/dependencies/dependencyinsight.md @@ -68,7 +68,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac 1.0.0 - + org.springframework spring-core 5.2.6.RELEASE @@ -87,7 +87,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac - -+ ++ org.springframework ``` diff --git a/docs/recipes/java/dependencies/dependencyvulnerabilitycheck.md b/docs/recipes/java/dependencies/dependencyvulnerabilitycheck.md index 1f8f1d44ee..855483c6fa 100644 --- a/docs/recipes/java/dependencies/dependencyvulnerabilitycheck.md +++ b/docs/recipes/java/dependencies/dependencyvulnerabilitycheck.md @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem'; **org.openrewrite.java.dependencies.DependencyVulnerabilityCheck** -_This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe 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/). Last updated: 2025-11-17T1102._ +_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` 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: 2025-12-05T0835._ ## Recipe source @@ -35,7 +35,9 @@ This recipe is used as part of the following composite recipes: * [Remediate OWASP A06:2021 Vulnerable and outdated components](/recipes/java/security/owaspa06.md) -## Example +## Examples +##### Example 1 +`DependencyVulnerabilityCheckMavenTest#transitive` ###### Parameters | Parameter | Value | @@ -44,7 +46,104 @@ This recipe is used as part of the following composite recipes: |overrideTransitive|`true`| |maximumUpgradeDelta|`null`| |minimumSeverity|`null`| -|cvePattern|| +|cvePattern|`null`| + + + + + + +###### Before +```xml title="pom.xml" + + com.mycompany.app + my-app + 1 + + + org.openrewrite + rewrite-java + 7.0.0 + + + +``` + +###### After +```xml title="pom.xml" + + com.mycompany.app + my-app + 1 + + + + + com.fasterxml.jackson.core + jackson-databind + 2.12.7.1 + + + + io.github.classgraph + classgraph + 4.8.112 + + + + + + org.openrewrite + rewrite-java + 7.0.0 + + + +``` + + + + +```diff +--- pom.xml ++++ pom.xml +@@ -5,0 +5,16 @@ + my-app + 1 ++ ++ ++ ++ ++ com.fasterxml.jackson.core ++ jackson-databind ++ 2.12.7.1 ++ ++ ++ ++ io.github.classgraph ++ classgraph ++ 4.8.112 ++ ++ ++ + +``` + + + +--- + +##### Example 2 +`DependencyVulnerabilityCheckGradleTest#transitive` + +###### Parameters +| Parameter | Value | +| --- | --- | +|scope|`null`| +|overrideTransitive|`true`| +|maximumUpgradeDelta|`null`| +|minimumSeverity|`null`| +|cvePattern|`null`| diff --git a/docs/recipes/java/dependencies/removedependency.md b/docs/recipes/java/dependencies/removedependency.md index ebda00e7c9..b057398a62 100644 --- a/docs/recipes/java/dependencies/removedependency.md +++ b/docs/recipes/java/dependencies/removedependency.md @@ -45,6 +45,7 @@ This recipe is used as part of the following composite recipes: * [Migrate Log4j 1.x to Log4j 2.x](/recipes/java/logging/log4j/log4j1tolog4j2.md) * [Migrate Log4j 2.x to Logback](/recipes/java/logging/logback/log4jtologback.md) * [Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0](/recipes/java/spring/cloud2022/migratecloudsleuthtomicrometertracing.md) +* [Migrate Spring Retry to Spring Resilience](/recipes/java/spring/boot4/migratespringretry.md) * [Migrate from EasyMock to Mockito](/recipes/java/testing/easymock/easymocktomockito.md) * [Migrate from JMockit to Mockito](/recipes/java/testing/jmockit/jmockittomockito.md) * [Migrate from Swagger to SpringDoc and OpenAPI](/recipes/java/springdoc/swaggertospringdoc.md) diff --git a/docs/recipes/java/dependencies/search/doesnotincludedependency.md b/docs/recipes/java/dependencies/search/doesnotincludedependency.md index d19d122b80..53ddbb7de6 100644 --- a/docs/recipes/java/dependencies/search/doesnotincludedependency.md +++ b/docs/recipes/java/dependencies/search/doesnotincludedependency.md @@ -25,6 +25,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | --- | --- | --- | --- | | `String` | groupId | The first part of a dependency coordinate `com.google.guava:guava:VERSION`. Supports glob. | `com.google.guava` | | `String` | artifactId | The second part of a dependency coordinate `com.google.guava:guava:VERSION`. Supports glob. | `guava` | +| `String` | version | *Optional*. Match only dependencies with the specified resolved version. Node-style [version selectors](https://docs.openrewrite.org/reference/dependency-version-selectors) may be used. All versions are searched by default. | `1.x` | | `Boolean` | onlyDirect | *Optional*. Default false. If enabled, transitive dependencies will not be considered. | `true` | | `String` | scope | *Optional*. Default any. If specified, only the requested scope's classpaths will be checked. Valid options: `compile`, `test`, `runtime`, `provided` | `compile` | | `String` | configuration | *Optional*. Match dependencies with the specified configuration. If not specified, all configurations will be searched. | `compileClasspath` | @@ -36,6 +37,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | --- | --- | |groupId|`org.springframework`| |artifactId|`spring-beans`| +|version|`null`| |onlyDirect|`false`| |scope|`compile`| |configuration|`compileClasspath`| @@ -151,6 +153,7 @@ recipeList: - org.openrewrite.java.dependencies.search.DoesNotIncludeDependency: groupId: com.google.guava artifactId: guava + version: 1.x onlyDirect: true scope: compile configuration: compileClasspath @@ -219,7 +222,7 @@ dependencies { You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe DoesNotIncludeDependency --recipe-option "groupId=com.google.guava" --recipe-option "artifactId=guava" --recipe-option "onlyDirect=true" --recipe-option "scope=compile" --recipe-option "configuration=compileClasspath" +mod run . --recipe DoesNotIncludeDependency --recipe-option "groupId=com.google.guava" --recipe-option "artifactId=guava" --recipe-option "version=1.x" --recipe-option "onlyDirect=true" --recipe-option "scope=compile" --recipe-option "configuration=compileClasspath" ``` If the recipe is not available locally, then you can install it using: diff --git a/docs/recipes/java/dependencies/upgradedependencyversion.md b/docs/recipes/java/dependencies/upgradedependencyversion.md index 5e1f69e8a4..3208392e30 100644 --- a/docs/recipes/java/dependencies/upgradedependencyversion.md +++ b/docs/recipes/java/dependencies/upgradedependencyversion.md @@ -51,6 +51,7 @@ This recipe is used as part of the following composite recipes: * [Migrate OkHttp dependencies to 5.x](/recipes/okhttp/upgradeokhttp5dependencies.md) * [Migrate Okio dependencies to 3.x](/recipes/okio/upgradeokio3dependencies.md) * [Migrate RestAssured from javax to jakarta namespace by upgrading to a version compatible with J2EE9](/recipes/java/migrate/jakarta/restassuredjavaxtojakarta.md) +* [Migrate Spring Retry to Spring Resilience](/recipes/java/spring/boot4/migratespringretry.md) * [Migrate deprecated `javaee-api` dependencies to `jakarta.platform`](/recipes/java/migrate/jakarta/javaxeeapitojakarta.md) * [Migrate deprecated `javax.activation` packages to `jakarta.activation`](/recipes/java/migrate/jakarta/javaxactivationmigrationtojakartaactivation.md) * [Migrate deprecated `javax.annotation` to `jakarta.annotation`](/recipes/com/oracle/weblogic/rewrite/jakarta/javaxannotationmigrationtojakarta9annotation.md) @@ -90,6 +91,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Hibernate 6.5.x](/recipes/hibernate/migratetohibernate65.md) * [Migrate to Hibernate 6.6.x](/recipes/hibernate/migratetohibernate66.md) * [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) +* [Migrate to Hibernate 7.1.x](/recipes/hibernate/migratetohibernate71.md) * [Migrate to Hibernate for Jakarta EE 9](/recipes/com/oracle/weblogic/rewrite/hibernate/migratehibernatetojakartaee9.md) * [Migrate to JasperReports 5.6.x](/recipes/jasperreports/upgradetojasperreports5.md) * [Migrate to JasperReports 6](/recipes/jasperreports/upgradetojasperreports6.md) @@ -126,7 +128,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Boot 3.4 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-community-edition.md) * [Migrate to Spring Boot 3.5 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md) * [Migrate to Spring Boot 3.5 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-moderne-edition.md) -* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Spring Boot 4.0 (Community Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md) * [Migrate to Spring Framework 5.0](/recipes/java/spring/framework/upgradespringframework_5_0.md) * [Migrate to Spring Framework 5.1](/recipes/java/spring/framework/upgradespringframework_5_1.md) * [Migrate to Spring Framework 5.2](/recipes/java/spring/framework/upgradespringframework_5_2.md) @@ -136,6 +138,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Framework 6.2 for WebLogic 15.1.1](/recipes/com/oracle/weblogic/rewrite/spring/framework/upgradetospringframework_6_2.md) * [Migrate to Spring Framework 6.2](/recipes/java/spring/framework/upgradespringframework_6_2.md) * [Migrate to Spring Framework 7.0](/recipes/java/spring/framework/upgradespringframework_7_0.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Migrate to Spring Security 5.7](/recipes/java/spring/security5/upgradespringsecurity_5_7.md) * [Migrate to Spring Security 5.8](/recipes/java/spring/security5/upgradespringsecurity_5_8.md) * [Migrate to Spring Security 6.0](/recipes/java/spring/security6/upgradespringsecurity_6_0.md) diff --git a/docs/recipes/java/format/autoformat.md b/docs/recipes/java/format/autoformat.md index a62e341a6a..937650b243 100644 --- a/docs/recipes/java/format/autoformat.md +++ b/docs/recipes/java/format/autoformat.md @@ -24,6 +24,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | Type | Name | Description | Example | | --- | --- | --- | --- | | `String` | style | *Optional*. See https://docs.openrewrite.org/concepts-and-explanations/styles for a description on styles. |
type: specs.openrewrite.org/v1beta/style
name: com.yourorg.YesTabsNoStarImports
styleConfigs:
- org.openrewrite.java.style.TabsAndIndentsStyle:
useTabCharacter: true
| +| `Boolean` | removeCustomLineBreaks | *Optional*. Do you want to remove custom line breaks? (default false) | | ## Usage diff --git a/docs/recipes/java/jackson/upgradejackson_2_3_dependencies.md b/docs/recipes/java/jackson/upgradejackson_2_3_dependencies.md index 0aa3267d5a..afc5f28b7c 100644 --- a/docs/recipes/java/jackson/upgradejackson_2_3_dependencies.md +++ b/docs/recipes/java/jackson/upgradejackson_2_3_dependencies.md @@ -63,8 +63,93 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * newVersion: `3.0.x` * [Change Gradle or Maven dependency](../../java/dependencies/changedependency) * oldGroupId: `com.fasterxml.jackson.module` - * oldArtifactId: `*` + * oldArtifactId: `jackson-module-scala_2.13` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-scala_2.13` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-scala_2.12` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-scala_2.12` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-scala_3` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-scala_3` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-kotlin` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-kotlin` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-no-ctor-deser` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-no-ctor-deser` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-jakarta-xmlbind-annotations` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-jakarta-xmlbind-annotations` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-mrbean` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-mrbean` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-jaxb-annotations` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-jaxb-annotations` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-afterburner` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-afterburner` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-guice7` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-guice7` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-modules-base` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-modules-base` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-osgi` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-osgi` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-guice` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-guice` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-android-record` + * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-android-record` + * newVersion: `3.0.x` +* [Change Gradle or Maven dependency](../../java/dependencies/changedependency) + * oldGroupId: `com.fasterxml.jackson.module` + * oldArtifactId: `jackson-module-blackbird` * newGroupId: `tools.jackson.module` + * newArtifactId: `jackson-module-blackbird` * newVersion: `3.0.x` * [Change Gradle or Maven dependency](../../java/dependencies/changedependency) * oldGroupId: `com.fasterxml.jackson.dataformat` @@ -130,8 +215,93 @@ recipeList: newVersion: 3.0.x - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.fasterxml.jackson.module - oldArtifactId: "*" + oldArtifactId: jackson-module-scala_2.13 + newGroupId: tools.jackson.module + newArtifactId: jackson-module-scala_2.13 + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-scala_2.12 + newGroupId: tools.jackson.module + newArtifactId: jackson-module-scala_2.12 + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-scala_3 + newGroupId: tools.jackson.module + newArtifactId: jackson-module-scala_3 + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-kotlin + newGroupId: tools.jackson.module + newArtifactId: jackson-module-kotlin + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-no-ctor-deser + newGroupId: tools.jackson.module + newArtifactId: jackson-module-no-ctor-deser + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-jakarta-xmlbind-annotations + newGroupId: tools.jackson.module + newArtifactId: jackson-module-jakarta-xmlbind-annotations + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-mrbean + newGroupId: tools.jackson.module + newArtifactId: jackson-module-mrbean + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-jaxb-annotations + newGroupId: tools.jackson.module + newArtifactId: jackson-module-jaxb-annotations + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-afterburner + newGroupId: tools.jackson.module + newArtifactId: jackson-module-afterburner + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-guice7 + newGroupId: tools.jackson.module + newArtifactId: jackson-module-guice7 + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-modules-base + newGroupId: tools.jackson.module + newArtifactId: jackson-modules-base + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-osgi + newGroupId: tools.jackson.module + newArtifactId: jackson-module-osgi + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-guice + newGroupId: tools.jackson.module + newArtifactId: jackson-module-guice + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-android-record + newGroupId: tools.jackson.module + newArtifactId: jackson-module-android-record + newVersion: 3.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: com.fasterxml.jackson.module + oldArtifactId: jackson-module-blackbird newGroupId: tools.jackson.module + newArtifactId: jackson-module-blackbird newVersion: 3.0.x - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.fasterxml.jackson.dataformat diff --git a/docs/recipes/java/jspecify/README.md b/docs/recipes/java/jspecify/README.md index 7d6d51cf7d..a9eb7bbced 100644 --- a/docs/recipes/java/jspecify/README.md +++ b/docs/recipes/java/jspecify/README.md @@ -8,6 +8,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Migrate from Jakarta annotation API to JSpecify](./migratefromjakartaannotationapi.md) * [Migrate from JetBrains annotations to JSpecify](./migratefromjetbrainsannotations.md) * [Migrate from Micrometer annotations to JSpecify](./migratefrommicrometerannotations.md) +* [Migrate from Micronaut Framework annotations to JSpecify](./migratefrommicronautannotations.md) * [Migrate from OpenRewrite annotations to JSpecify](./migratefromopenrewriteannotations.md) * [Migrate from Spring Framework annotations to JSpecify](./migratefromspringframeworkannotations.md) * [Migrate from javax annotation API to JSpecify](./migratefromjavaxannotationapi.md) diff --git a/docs/recipes/java/jspecify/migratefrommicronautannotations.md b/docs/recipes/java/jspecify/migratefrommicronautannotations.md new file mode 100644 index 0000000000..2046f5feb1 --- /dev/null +++ b/docs/recipes/java/jspecify/migratefrommicronautannotations.md @@ -0,0 +1,275 @@ +--- +sidebar_label: "Migrate from Micronaut Framework annotations to JSpecify" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate from Micronaut Framework annotations to JSpecify + +**org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations** + +_Migrate from Micronaut Framework annotations to JSpecify._ + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-migrate-java/blob/main/src/main/resources/META-INF/rewrite/jspecify.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-migrate-java/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-migrate-java/) + +:::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 + + + +* [Add Gradle or Maven dependency](../../java/dependencies/adddependency) + * groupId: `org.jspecify` + * artifactId: `jspecify` + * version: `1.0.0` + * onlyIfUsing: `io.micronaut.core.annotation.*ull*` + * acceptTransitive: `true` +* [Change type](../../java/changetype) + * oldFullyQualifiedTypeName: `io.micronaut.core.annotation.Nullable` + * newFullyQualifiedTypeName: `org.jspecify.annotations.Nullable` + * ignoreDefinition: `true` +* [Change type](../../java/changetype) + * oldFullyQualifiedTypeName: `io.micronaut.core.annotation.NonNull` + * newFullyQualifiedTypeName: `org.jspecify.annotations.NonNull` + * ignoreDefinition: `true` +* [Move annotation to type instead of field](../../staticanalysis/java/movefieldannotationtotype) + * annotationType: `org.jspecify.annotations.*` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations +displayName: Migrate from Micronaut Framework annotations to JSpecify +description: | + Migrate from Micronaut Framework annotations to JSpecify. +recipeList: + - org.openrewrite.java.dependencies.AddDependency: + groupId: org.jspecify + artifactId: jspecify + version: 1.0.0 + onlyIfUsing: io.micronaut.core.annotation.*ull* + acceptTransitive: true + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: io.micronaut.core.annotation.Nullable + newFullyQualifiedTypeName: org.jspecify.annotations.Nullable + ignoreDefinition: true + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: io.micronaut.core.annotation.NonNull + newFullyQualifiedTypeName: org.jspecify.annotations.NonNull + ignoreDefinition: true + - org.openrewrite.staticanalysis.java.MoveFieldAnnotationToType: + annotationType: org.jspecify.annotations.* + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to JSpecify](/recipes/java/jspecify/migratetojspecify.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-migrate-java` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-migrate-java:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-migrate-java:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}}") + } + rewrite { + activeRecipe("org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations + + + + + org.openrewrite.recipe + rewrite-migrate-java + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateFromMicronautAnnotations +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-migrate-java:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}} +``` + + + +## 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 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/jspecify/migratetojspecify.md b/docs/recipes/java/jspecify/migratetojspecify.md index d3aaec17d3..00e0aa94b0 100644 --- a/docs/recipes/java/jspecify/migratetojspecify.md +++ b/docs/recipes/java/jspecify/migratetojspecify.md @@ -36,6 +36,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Migrate from Jakarta annotation API to JSpecify](../../java/jspecify/migratefromjakartaannotationapi) * [Migrate from JetBrains annotations to JSpecify](../../java/jspecify/migratefromjetbrainsannotations) * [Migrate from Micrometer annotations to JSpecify](../../java/jspecify/migratefrommicrometerannotations) +* [Migrate from Micronaut Framework annotations to JSpecify](../../java/jspecify/migratefrommicronautannotations)
@@ -55,6 +56,7 @@ recipeList: - org.openrewrite.java.jspecify.MigrateFromJakartaAnnotationApi - org.openrewrite.java.jspecify.MigrateFromJetbrainsAnnotations - org.openrewrite.java.jspecify.MigrateFromMicrometerAnnotations + - org.openrewrite.java.jspecify.MigrateFromMicronautAnnotations ``` diff --git a/docs/recipes/java/migrate/util/javautilapis.md b/docs/recipes/java/migrate/util/javautilapis.md index e44ef3050b..3568d4226e 100644 --- a/docs/recipes/java/migrate/util/javautilapis.md +++ b/docs/recipes/java/migrate/util/javautilapis.md @@ -34,6 +34,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Prefer `List.of(..)`](../../../java/migrate/util/migratecollectionsunmodifiablelist) * [Prefer `Set.of(..)`](../../../java/migrate/util/migratecollectionsunmodifiableset) * [Replace `Stream.collect(Collectors.toUnmodifiableList())` with `Stream.toList()`](../../../java/migrate/util/replacestreamcollectwithtolist) +* [Prefer `Map.of(..)`](../../../java/migrate/util/usemapof) @@ -53,6 +54,7 @@ recipeList: - org.openrewrite.java.migrate.util.MigrateCollectionsUnmodifiableList - org.openrewrite.java.migrate.util.MigrateCollectionsUnmodifiableSet - org.openrewrite.java.migrate.util.ReplaceStreamCollectWithToList + - org.openrewrite.java.migrate.util.UseMapOf ``` diff --git a/docs/recipes/java/migrate/util/usemapof.md b/docs/recipes/java/migrate/util/usemapof.md index 2c4f7c2b35..9fcea17c92 100644 --- a/docs/recipes/java/migrate/util/usemapof.md +++ b/docs/recipes/java/migrate/util/usemapof.md @@ -19,6 +19,13 @@ _Prefer `Map.of(..)` instead of using `java.util.Map#put(..)` in Java 10 or high 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: + +* [Use modernized `java.util` APIs](/recipes/java/migrate/util/javautilapis.md) + ## Example diff --git a/docs/recipes/java/removemethodinvocations.md b/docs/recipes/java/removemethodinvocations.md index e304837ac5..d0a6821222 100644 --- a/docs/recipes/java/removemethodinvocations.md +++ b/docs/recipes/java/removemethodinvocations.md @@ -39,6 +39,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Java 17](/recipes/org/apache/camel/upgrade/upgradetojava17.md) * [Migrate to Java 8](/recipes/java/migrate/upgradetojava8.md) * [Migrate to Spring Framework 6.1](/recipes/java/spring/framework/upgradespringframework_6_1.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Remove Security AccessController](/recipes/java/migrate/accesscontroller.md) * [Remove Security Policy](/recipes/java/migrate/removesecuritypolicy.md) * [Remove Security SecurityManager](/recipes/java/migrate/removesecuritymanager.md) diff --git a/docs/recipes/java/removemethodthrows.md b/docs/recipes/java/removemethodthrows.md new file mode 100644 index 0000000000..30e0f5f4ca --- /dev/null +++ b/docs/recipes/java/removemethodthrows.md @@ -0,0 +1,178 @@ +--- +sidebar_label: "Remove elements from a method declaration `throws` clause" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Remove elements from a method declaration `throws` clause + +**org.openrewrite.java.RemoveMethodThrows** + +_Remove specific, or all exceptions from a method declaration `throws` clause._ + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite/blob/main/rewrite-java/src/main/java/org/openrewrite/java/RemoveMethodThrows.java), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-java/) + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + +## Options + +| Type | Name | Description | Example | +| --- | --- | --- | --- | +| `String` | methodPattern | A [method pattern](https://docs.openrewrite.org/reference/method-patterns) is used to find matching method invocations. For example, to find all method invocations in the Guava library, use the pattern: `com.google.common..*#*(..)`.

The pattern format is `#()`.

`..*` includes all subpackages of `com.google.common`.
`*(..)` matches any method name with any number of arguments.

For more specific queries, like Guava's `ImmutableMap`, use `com.google.common.collect.ImmutableMap#*(..)` to narrow down the results. | `java.util.List add(..)` | +| `Boolean` | matchOverrides | *Optional*. When enabled, match methods that are overrides of the method pattern. Default is true. | | +| `String` | exceptionTypePattern | A type pattern that is used to find matching exception to remove. Use `*` to match all. | `java.io.IOException` | + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Remove throws exception in `SecurityConfigurer` methods `init` and `configure`](/recipes/java/spring/security7/securityconfigurerremovethrowsexception.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.RemoveMethodThrowsExample`. +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.RemoveMethodThrowsExample +displayName: Remove elements from a method declaration `throws` clause example +recipeList: + - org.openrewrite.java.RemoveMethodThrows: + methodPattern: java.util.List add(..) + exceptionTypePattern: java.io.IOException +``` + +Now that `com.yourorg.RemoveMethodThrowsExample` has been defined, activate it in your build file: + + + +1. Add the following to your `build.gradle` file: +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("com.yourorg.RemoveMethodThrowsExample") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} +``` +2. Run `gradle rewriteRun` to run the recipe. + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + com.yourorg.RemoveMethodThrowsExample + + + + + + +``` +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe RemoveMethodThrows --recipe-option "methodPattern=java.util.List add(..)" --recipe-option "exceptionTypePattern=java.io.IOException" +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite:rewrite-java:{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}} +``` + + + +## 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 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/removeunusedimports.md b/docs/recipes/java/removeunusedimports.md index 5fb6bbc43e..6c466bc7bb 100644 --- a/docs/recipes/java/removeunusedimports.md +++ b/docs/recipes/java/removeunusedimports.md @@ -29,7 +29,6 @@ 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: * [Clean up various issues with the code.](/recipes/java/dropwizard/codecleanup.md) -* [Migrate Google Truth to AssertJ](/recipes/java/testing/truth/migratetruthtoassertj.md) * [OpenRewrite recipe best practices](/recipes/recipes/rewrite/openrewriterecipebestpractices.md) * [Upgrade to the latest Timefold Solver](/recipes/ai/timefold/solver/migration/tolatest.md) diff --git a/docs/recipes/java/spring/README.md b/docs/recipes/java/spring/README.md index 03a7616549..9354034995 100644 --- a/docs/recipes/java/spring/README.md +++ b/docs/recipes/java/spring/README.md @@ -12,7 +12,9 @@ _Recipes for upgrading and patching [Spring](https://spring.io/) applications._ * [Cloud2024](/recipes/java/spring/cloud2024) * [Cloud2025](/recipes/java/spring/cloud2025) * [Doc](/recipes/java/spring/doc) +* [Hibernate](/recipes/java/spring/hibernate) * [Http](/recipes/java/spring/http) +* [Orm](/recipes/java/spring/orm) * [Search](/recipes/java/spring/search) * [Security7](/recipes/java/spring/security7) * [Spring Batch](/recipes/java/spring/batch) diff --git a/docs/recipes/java/spring/addspringproperty.md b/docs/recipes/java/spring/addspringproperty.md index b8d00007bd..d843bddc6a 100644 --- a/docs/recipes/java/spring/addspringproperty.md +++ b/docs/recipes/java/spring/addspringproperty.md @@ -33,6 +33,7 @@ This recipe is available under the [Moderne Source Available License](https://do This recipe is used as part of the following composite recipes: +* [Add MongoDB representation properties for UUID and BigDecimal](/recipes/java/spring/boot4/addmongodbrepresentationproperties.md) * [Enable Virtual Threads on Java 21](/recipes/java/spring/boot3/enablevirtualthreads.md) ## Example diff --git a/docs/recipes/java/spring/batch/springbatch5to6migration.md b/docs/recipes/java/spring/batch/springbatch5to6migration.md index 3380c2f1d8..6323fb2dde 100644 --- a/docs/recipes/java/spring/batch/springbatch5to6migration.md +++ b/docs/recipes/java/spring/batch/springbatch5to6migration.md @@ -98,6 +98,105 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change type](../../../java/changetype) * oldFullyQualifiedTypeName: `org.springframework.batch.core.partition.support.StepExecutionAggregator` * newFullyQualifiedTypeName: `org.springframework.batch.core.partition.StepExecutionAggregator` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.ChunkListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.ChunkListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.ItemProcessListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.ItemProcessListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.ItemReadListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.ItemReadListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.ItemWriteListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.ItemWriteListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobExecutionListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.JobExecutionListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.SkipListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.SkipListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.StepExecutionListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.StepExecutionListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.StepListener` + * newFullyQualifiedTypeName: `org.springframework.batch.core.listener.StepListener` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.Job` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.Job` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobExecution` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.JobExecution` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobExecutionException` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.JobExecutionException` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobInstance` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.JobInstance` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobInterruptedException` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.JobInterruptedException` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobKeyGenerator` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.JobKeyGenerator` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.DefaultJobKeyGenerator` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.DefaultJobKeyGenerator` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.StartLimitExceededException` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.StartLimitExceededException` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.UnexpectedJobExecutionException` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.UnexpectedJobExecutionException` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.CompositeJobParametersValidator` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.CompositeJobParametersValidator` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.DefaultJobParametersValidator` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.DefaultJobParametersValidator` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobParameter` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.JobParameter` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobParameters` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.JobParameters` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobParametersBuilder` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.JobParametersBuilder` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobParametersIncrementer` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.JobParametersIncrementer` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobParametersInvalidException` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.JobParametersInvalidException` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.JobParametersValidator` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.JobParametersValidator` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.job.launch.support.RunIdIncrementer` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.RunIdIncrementer` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.job.launch.support.DataFieldMaxValueJobParametersIncrementer` + * newFullyQualifiedTypeName: `org.springframework.batch.core.job.parameters.DataFieldMaxValueJobParametersIncrementer` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.Step` + * newFullyQualifiedTypeName: `org.springframework.batch.core.step.Step` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.StepContribution` + * newFullyQualifiedTypeName: `org.springframework.batch.core.step.StepContribution` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.StepExecution` + * newFullyQualifiedTypeName: `org.springframework.batch.core.step.StepExecution` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.integration.chunk.ChunkHandler` + * newFullyQualifiedTypeName: `org.springframework.batch.integration.chunk.ChunkRequestHandler` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.repository.support.JobRepositoryFactoryBean` + * newFullyQualifiedTypeName: `org.springframework.batch.core.repository.support.JdbcJobRepositoryFactoryBean` +* [Change type](../../../java/changetype) + * oldFullyQualifiedTypeName: `org.springframework.batch.core.repository.explore.support.JobExplorerFactoryBean` + * newFullyQualifiedTypeName: `org.springframework.batch.core.repository.explore.support.JdbcJobExplorerFactoryBean` @@ -179,6 +278,105 @@ recipeList: - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: org.springframework.batch.core.partition.support.StepExecutionAggregator newFullyQualifiedTypeName: org.springframework.batch.core.partition.StepExecutionAggregator + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.ChunkListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.ChunkListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.ItemProcessListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.ItemProcessListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.ItemReadListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.ItemReadListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.ItemWriteListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.ItemWriteListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobExecutionListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.JobExecutionListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.SkipListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.SkipListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.StepExecutionListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.StepExecutionListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.StepListener + newFullyQualifiedTypeName: org.springframework.batch.core.listener.StepListener + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.Job + newFullyQualifiedTypeName: org.springframework.batch.core.job.Job + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobExecution + newFullyQualifiedTypeName: org.springframework.batch.core.job.JobExecution + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobExecutionException + newFullyQualifiedTypeName: org.springframework.batch.core.job.JobExecutionException + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobInstance + newFullyQualifiedTypeName: org.springframework.batch.core.job.JobInstance + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobInterruptedException + newFullyQualifiedTypeName: org.springframework.batch.core.job.JobInterruptedException + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobKeyGenerator + newFullyQualifiedTypeName: org.springframework.batch.core.job.JobKeyGenerator + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.DefaultJobKeyGenerator + newFullyQualifiedTypeName: org.springframework.batch.core.job.DefaultJobKeyGenerator + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.StartLimitExceededException + newFullyQualifiedTypeName: org.springframework.batch.core.job.StartLimitExceededException + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.UnexpectedJobExecutionException + newFullyQualifiedTypeName: org.springframework.batch.core.job.UnexpectedJobExecutionException + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.CompositeJobParametersValidator + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.CompositeJobParametersValidator + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.DefaultJobParametersValidator + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.DefaultJobParametersValidator + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobParameter + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.JobParameter + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobParameters + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.JobParameters + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobParametersBuilder + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.JobParametersBuilder + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobParametersIncrementer + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.JobParametersIncrementer + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobParametersInvalidException + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.JobParametersInvalidException + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.JobParametersValidator + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.JobParametersValidator + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.job.launch.support.RunIdIncrementer + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.RunIdIncrementer + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.job.launch.support.DataFieldMaxValueJobParametersIncrementer + newFullyQualifiedTypeName: org.springframework.batch.core.job.parameters.DataFieldMaxValueJobParametersIncrementer + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.Step + newFullyQualifiedTypeName: org.springframework.batch.core.step.Step + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.StepContribution + newFullyQualifiedTypeName: org.springframework.batch.core.step.StepContribution + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.StepExecution + newFullyQualifiedTypeName: org.springframework.batch.core.step.StepExecution + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.integration.chunk.ChunkHandler + newFullyQualifiedTypeName: org.springframework.batch.integration.chunk.ChunkRequestHandler + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.repository.support.JobRepositoryFactoryBean + newFullyQualifiedTypeName: org.springframework.batch.core.repository.support.JdbcJobRepositoryFactoryBean + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.springframework.batch.core.repository.explore.support.JobExplorerFactoryBean + newFullyQualifiedTypeName: org.springframework.batch.core.repository.explore.support.JdbcJobExplorerFactoryBean ``` diff --git a/docs/recipes/java/spring/boot2/README.md b/docs/recipes/java/spring/boot2/README.md index 471f5e5fed..af065d1452 100644 --- a/docs/recipes/java/spring/boot2/README.md +++ b/docs/recipes/java/spring/boot2/README.md @@ -48,6 +48,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Migrate multi-condition `@ConditionalOnBean` annotations](./conditionalonbeananynestedcondition.md) * [Migrate null credentials](./migratedatabasecredentialsfortoolproperties.md) * [Migrate null credentials](./migratedatabasecredentialsfortoolyaml.md) +* [Migrate to Spring Boot 2.0](./upgradespringboot_2_0.md) * [Migrate to recommended constants in `LogbackLoggingSystemProperties` from deprecated values in `LoggingSystemProperties`](./migrateloggingsystempropertyconstants.md) * [Move SAML relying party identity provider property to asserting party](./samlrelyingpartypropertyapplicationpropertiesmove.md) * [Remove `@SpringExtension`](./unnecessaryspringextension.md) diff --git a/docs/recipes/java/spring/boot3/README.md b/docs/recipes/java/spring/boot3/README.md index e8f97955ff..7959ff84e9 100644 --- a/docs/recipes/java/spring/boot3/README.md +++ b/docs/recipes/java/spring/boot3/README.md @@ -50,6 +50,7 @@ _Recipes that include further recipes, often including the individual recipes be ## Recipes * [Add `@Configuration` to classes with `@EnableXXXSecurity` annotations](./configurationoverenablesecurity.md) +* [Add `@SpringBootApplication` class](./addspringbootapplication.md) * [Add `@Valid` annotation to fields](./addvalidtoconfigurationpropertiesfields.md) * [Add `@Valid` to nested properties in `@ConfigurationProperties`](./addvalidtonestedconfigproperties.md) * [Add `SetUseTrailingSlashMatch()` in configuration](./addsetusetrailingslashmatch.md) @@ -84,6 +85,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Replace `taskExecutor` with `applicationTaskExecutor`](./resolvetaskexecutorfromcontext.md) * [Spring Boot 3.3 best practices](./springboot33bestpractices.md) * [Update OpenTelemetry resource attributes](./updateopentelemetryresourceattributes.md) +* [Update Prometheus Pushgateway Dependency Coordinates](./updateprometheuspushgateway.md) * [Upgrade MyBatis to Spring Boot 2.0](./upgrademybatistospringboot_2_0.md) * [Upgrade Spring Cloud AWS to Spring Boot 3.4 compatible version](./upgradespringcloudawstospringboot_3_4.md) * [Use `kafkaAwareTransactionManager` setter](./replacekafkatransactionmanagersetter.md) diff --git a/docs/recipes/java/spring/boot3/addspringbootapplication.md b/docs/recipes/java/spring/boot3/addspringbootapplication.md new file mode 100644 index 0000000000..4a00bb110c --- /dev/null +++ b/docs/recipes/java/spring/boot3/addspringbootapplication.md @@ -0,0 +1,114 @@ +--- +sidebar_label: "Add `@SpringBootApplication` class" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Add `@SpringBootApplication` class + +**io.moderne.java.spring.boot3.AddSpringBootApplication** + +_Adds a `@SpringBootApplication` class containing a main method to bootify your Spring Framework application._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + +## Options + +| Type | Name | Description | Example | +| --- | --- | --- | --- | + | `String` | applicationFolder | *Optional*. When your source code repo contains multiple java projects/modules, it's impossible to decide in which one to add the the Application class in a guaranteed way. +By setting this property, you can filter out sourcepaths (supporting glob) to make 1 module/project applicable as Applications module. | `**/*-web/` | + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe AddSpringBootApplication +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot3/resolvetaskexecutorfromcontext.md b/docs/recipes/java/spring/boot3/resolvetaskexecutorfromcontext.md index 6a36ef45f8..1ba7a30bc9 100644 --- a/docs/recipes/java/spring/boot3/resolvetaskexecutorfromcontext.md +++ b/docs/recipes/java/spring/boot3/resolvetaskexecutorfromcontext.md @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem'; **io.moderne.java.spring.boot3.ResolveTaskExecutorFromContext** -_Use bean name `applicationTaskExecutor` instead of `taskExecutor` when resolving `TaskExecutor` Bean from application context_ +_Use bean name `applicationTaskExecutor` instead of `taskExecutor` when resolving `TaskExecutor` Bean from application context._ ## Recipe source diff --git a/docs/recipes/java/spring/boot3/springbootproperties_3_5.md b/docs/recipes/java/spring/boot3/springbootproperties_3_5.md index 3bd11c11c6..35cf4d6ce5 100644 --- a/docs/recipes/java/spring/boot3/springbootproperties_3_5.md +++ b/docs/recipes/java/spring/boot3/springbootproperties_3_5.md @@ -33,6 +33,9 @@ This recipe is available under the [Moderne Source Available License](https://do +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `management.metrics.export.prometheus.pushgateway.base-url` + * newPropertyKey: `management.prometheus.metrics.export.pushgateway.address` * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `management.promethus.metrics.export.pushgateway.base-url` * newPropertyKey: `management.prometheus.metrics.export.pushgateway.address` @@ -87,6 +90,9 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `spring.mvc.converters.preferred-json-mapper` * newPropertyKey: `spring.http.converters.preferred-json-mapper` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.prometheus.histogram-flavor` + * comment: `This property is deprecated: No longer supported by the Prometheus client.` * [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) * propertyKey: `management.signalfx.metrics.export.access-token` * comment: `This property is deprecated: Deprecated in Micrometer 1.15.0` @@ -130,6 +136,9 @@ tags: - spring - boot recipeList: + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: management.metrics.export.prometheus.pushgateway.base-url + newPropertyKey: management.prometheus.metrics.export.pushgateway.address - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: management.promethus.metrics.export.pushgateway.base-url newPropertyKey: management.prometheus.metrics.export.pushgateway.address @@ -184,6 +193,9 @@ recipeList: - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: spring.mvc.converters.preferred-json-mapper newPropertyKey: spring.http.converters.preferred-json-mapper + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.prometheus.histogram-flavor + comment: This property is deprecated: No longer supported by the Prometheus client. - org.openrewrite.java.spring.CommentOutSpringPropertyKey: propertyKey: management.signalfx.metrics.export.access-token comment: This property is deprecated: Deprecated in Micrometer 1.15.0 diff --git a/docs/recipes/java/spring/boot3/updateprometheuspushgateway.md b/docs/recipes/java/spring/boot3/updateprometheuspushgateway.md new file mode 100644 index 0000000000..b1a4215500 --- /dev/null +++ b/docs/recipes/java/spring/boot3/updateprometheuspushgateway.md @@ -0,0 +1,249 @@ +--- +sidebar_label: "Update Prometheus Pushgateway Dependency Coordinates" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Update Prometheus Pushgateway Dependency Coordinates + +**org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway** + +_Update the Prometheus Pushgateway artifact ID for Spring Boot 3.5 compatibility._ + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-spring/blob/main/src/main/resources/META-INF/rewrite/spring-boot-35.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-spring/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-spring/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Definition + + + +* [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) + * oldGroupId: `io.prometheus` + * oldArtifactId: `simpleclient_pushgateway` + * newGroupId: `io.prometheus` + * newArtifactId: `prometheus-metrics-exporter-pushgateway` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway +displayName: Update Prometheus Pushgateway Dependency Coordinates +description: | + Update the Prometheus Pushgateway artifact ID for Spring Boot 3.5 compatibility. +recipeList: + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: io.prometheus + oldArtifactId: simpleclient_pushgateway + newGroupId: io.prometheus + newArtifactId: prometheus-metrics-exporter-pushgateway + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 3.5 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-spring` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}") + } + rewrite { + activeRecipe("org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway + + + + + org.openrewrite.recipe + rewrite-spring + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe UpdatePrometheusPushgateway +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot3/upgradespringboot_3_5-community-edition.md b/docs/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md index d77b459edc..8d4ebc2f98 100644 --- a/docs/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md +++ b/docs/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md @@ -36,6 +36,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Migrate to Spring Boot 3.4 (Community Edition)](../../../java/spring/boot3/upgradespringboot_3_4-community-edition) * [Migrate Spring Boot properties to 3.5](../../../java/spring/boot3/springbootproperties_3_5) * [Migrate to Spring Cloud 2025](../../../java/spring/cloud2025/upgradespringcloud_2025) +* [Update Prometheus Pushgateway Dependency Coordinates](../../../java/spring/boot3/updateprometheuspushgateway) * [Migrate to Spring Security 6.5](../../../java/spring/security6/upgradespringsecurity_6_5) * [Upgrade Gradle or Maven dependency versions](../../../java/dependencies/upgradedependencyversion) * groupId: `org.springframework.boot` @@ -77,6 +78,7 @@ recipeList: - org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_4 - org.openrewrite.java.spring.boot3.SpringBootProperties_3_5 - org.openrewrite.java.spring.cloud2025.UpgradeSpringCloud_2025 + - org.openrewrite.java.spring.boot3.UpdatePrometheusPushgateway - org.openrewrite.java.spring.security6.UpgradeSpringSecurity_6_5 - org.openrewrite.java.dependencies.UpgradeDependencyVersion: groupId: org.springframework.boot diff --git a/docs/recipes/java/spring/boot4/README.md b/docs/recipes/java/spring/boot4/README.md index e64a9fd2d3..ddcb45efe7 100644 --- a/docs/recipes/java/spring/boot4/README.md +++ b/docs/recipes/java/spring/boot4/README.md @@ -4,11 +4,22 @@ _Recipes that include further recipes, often including the individual recipes below._ +* [Add Jackson2 for Jersey using JSON](./addjackson2forjerseyjson.md) +* [Add MongoDB representation properties for UUID and BigDecimal](./addmongodbrepresentationproperties.md) * [Migrate Spring Boot properties to 4.0](./springbootproperties_4_0.md) +* [Migrate Spring Retry to Spring Resilience](./migratespringretry.md) * [Migrate to Spring Boot 4.0 (Moderne Edition)](./upgradespringboot_4_0-moderne-edition.md) * [Migrate to Spring Boot 4.0 (Community Edition)](./upgradespringboot_4_0-community-edition.md) * [Migrate to Spring Boot 4.0 modular starters](./migratetomodularstarters.md) * [Replace `@MockBean` and `@SpyBean`](./replacemockbeanandspybean.md) * [Replace deprecated RequestMatcherProvider with new API](./replacedeprecatedrequestmatcherprovider.md) +## Recipes + +* [Migrate `spring-retry` to Spring Framework resilience](./migratespringretrytospringframework7.md) +* [Remove `loaderImplementation` from Gradle](./removegradleuberjarloaderimplementationconfig.md) +* [Replace deprecated `DockerApi`](./replacedeprecateddockerapi.md) +* [Replace deprecated `ThreadPoolTaskSchedulerBuilder` constructor](./replacedeprecatedthreadpooltaskschedulerbuilderapi.md) +* [Replace deprecated `org.springframework.boot.autoconfigure.mongo` API](./replacedeprecatedautoconfiguremongoapi.md) + diff --git a/docs/recipes/java/spring/boot4/addjackson2forjerseyjson.md b/docs/recipes/java/spring/boot4/addjackson2forjerseyjson.md new file mode 100644 index 0000000000..53c4afd028 --- /dev/null +++ b/docs/recipes/java/spring/boot4/addjackson2forjerseyjson.md @@ -0,0 +1,316 @@ +--- +sidebar_label: "Add Jackson2 for Jersey using JSON" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Add Jackson2 for Jersey using JSON + +**io.moderne.java.spring.boot4.AddJackson2ForJerseyJson** + +_Check whether a module uses Jersey on combination with JSON and adds the needed `spring-boot-jackson` dependency and conditionally `spring-boot-jackson2` dependency._ + +### Tags + +* [spring](/reference/recipes-by-tag#spring) +* [boot](/reference/recipes-by-tag#boot) + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + +## Examples +##### Example 1 +`AddJackson2ForJerseyJsonTest#addStarters` + + +###### Unchanged +```java +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Test { + @JsonProperty + private Long id; +} +``` + +###### Unchanged +```mavenProject +test +``` + + + + + +###### Before +```xml title="pom.xml" + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.0.0 + + + com.example + demo + 0.0.1-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-jersey + + + +``` + +###### After +```xml title="pom.xml" + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.0.0 + + + com.example + demo + 0.0.1-SNAPSHOT + + + org.springframework.boot + spring-boot-jackson + + + org.springframework.boot + spring-boot-jackson2 + + + org.springframework.boot + spring-boot-starter-jersey + + + +``` + + + + +```diff +--- pom.xml ++++ pom.xml +@@ -15,0 +15,8 @@ + + org.springframework.boot ++ spring-boot-jackson ++ ++ ++ org.springframework.boot ++ spring-boot-jackson2 ++ ++ ++ org.springframework.boot + spring-boot-starter-jersey +``` + + + +--- + +##### Example 2 +`AddJackson2ForJerseyJsonTest#addStarters` + + +###### Unchanged +```java +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Test { + @JsonProperty + private Long id; +} +``` + +###### Unchanged +```mavenProject +test +``` + + + + + +###### Before +```xml title="pom.xml" + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.0.0 + + + com.example + demo + 0.0.1-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-jersey + + + +``` + +###### After +```xml title="pom.xml" + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.0.0 + + + com.example + demo + 0.0.1-SNAPSHOT + + + org.springframework.boot + spring-boot-jackson + + + org.springframework.boot + spring-boot-jackson2 + + + org.springframework.boot + spring-boot-starter-jersey + + + +``` + + + + +```diff +--- pom.xml ++++ pom.xml +@@ -15,0 +15,8 @@ + + org.springframework.boot ++ spring-boot-jackson ++ ++ ++ org.springframework.boot ++ spring-boot-jackson2 ++ ++ ++ org.springframework.boot + spring-boot-starter-jersey +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe AddJackson2ForJerseyJson +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/addmongodbrepresentationproperties.md b/docs/recipes/java/spring/boot4/addmongodbrepresentationproperties.md new file mode 100644 index 0000000000..3fbbde654f --- /dev/null +++ b/docs/recipes/java/spring/boot4/addmongodbrepresentationproperties.md @@ -0,0 +1,185 @@ +--- +sidebar_label: "Add MongoDB representation properties for UUID and BigDecimal" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Add MongoDB representation properties for UUID and BigDecimal + +**io.moderne.java.spring.boot4.AddMongoDbRepresentationProperties** + +_Adds the 'spring.mongodb.representation.uuid' property with value 'standard' and the 'spring.data.mongodb.representation.big-decimal' property with the value 'decimal128' to Spring configuration files when a MongoDB dependency is detected._ + +### Tags + +* [spring](/reference/recipes-by-tag#spring) +* [boot](/reference/recipes-by-tag#boot) +* [mongodb](/reference/recipes-by-tag#mongodb) + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + +## Examples +##### Example 1 +`AddMongoDbRepresentationPropertiesTest#addMongoDbRepresentationPropertiesMaven` + + +###### Unchanged +```java +class Test {} +``` + +###### Unchanged +```mavenProject +test-maven +``` + +###### Unchanged +```xml title="pom.xml" + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + org.mongodb + mongodb-driver-sync + 5.0.0 + + + +``` + +--- + +##### Example 2 +`AddMongoDbRepresentationPropertiesTest#addMongoDbRepresentationPropertiesMaven` + + +###### Unchanged +```java +class Test {} +``` + +###### Unchanged +```mavenProject +test-maven +``` + +###### Unchanged +```xml title="pom.xml" + + 4.0.0 + com.example + demo + 0.0.1-SNAPSHOT + + + org.mongodb + mongodb-driver-sync + 5.0.0 + + + +``` + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe AddMongoDbRepresentationProperties +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/migratespringretry.md b/docs/recipes/java/spring/boot4/migratespringretry.md new file mode 100644 index 0000000000..b17a5321c2 --- /dev/null +++ b/docs/recipes/java/spring/boot4/migratespringretry.md @@ -0,0 +1,119 @@ +--- +sidebar_label: "Migrate Spring Retry to Spring Resilience" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate Spring Retry to Spring Resilience + +**io.moderne.java.spring.boot4.MigrateSpringRetry** + +_Handle spring-retry not longer managed by Spring Boot and the possible migration to Spring Core Resilience._ + +### Tags + +* [spring](/reference/recipes-by-tag#spring) +* [boot](/reference/recipes-by-tag#boot) + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateSpringRetry +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/migratespringretrytospringframework7.md b/docs/recipes/java/spring/boot4/migratespringretrytospringframework7.md new file mode 100644 index 0000000000..09d87ea3b1 --- /dev/null +++ b/docs/recipes/java/spring/boot4/migratespringretrytospringframework7.md @@ -0,0 +1,114 @@ +--- +sidebar_label: "Migrate `spring-retry` to Spring Framework resilience" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate `spring-retry` to Spring Framework resilience + +**io.moderne.java.spring.boot4.MigrateSpringRetryToSpringFramework7** + +_Migrate `spring-retry`s `@Retryable` and `@Backoff` annotation to Spring Framework 7 Resilience annotations._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate Spring Retry to Spring Resilience](/recipes/java/spring/boot4/migratespringretry.md) + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateSpringRetryToSpringFramework7 +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/migratetomodularstarters.md b/docs/recipes/java/spring/boot4/migratetomodularstarters.md index de6b93b104..8c07c74cf2 100644 --- a/docs/recipes/java/spring/boot4/migratetomodularstarters.md +++ b/docs/recipes/java/spring/boot4/migratetomodularstarters.md @@ -60,7 +60,7 @@ test org.springframework.boot spring-boot-starter-parent - 4.0.0-RC2 + 4.0.0 com.example @@ -87,7 +87,7 @@ test org.springframework.boot spring-boot-starter-parent - 4.0.0-RC2 + 4.0.0 com.example @@ -160,7 +160,7 @@ test org.springframework.boot spring-boot-starter-parent - 4.0.0-RC2 + 4.0.0 com.example @@ -187,7 +187,7 @@ test org.springframework.boot spring-boot-starter-parent - 4.0.0-RC2 + 4.0.0 com.example diff --git a/docs/recipes/java/spring/boot4/removegradleuberjarloaderimplementationconfig.md b/docs/recipes/java/spring/boot4/removegradleuberjarloaderimplementationconfig.md new file mode 100644 index 0000000000..ad58ee9d65 --- /dev/null +++ b/docs/recipes/java/spring/boot4/removegradleuberjarloaderimplementationconfig.md @@ -0,0 +1,114 @@ +--- +sidebar_label: "Remove `loaderImplementation` from Gradle" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Remove `loaderImplementation` from Gradle + +**io.moderne.java.spring.boot4.RemoveGradleUberJarLoaderImplementationConfig** + +_Removes the Spring Boot Uber-Jar `loaderImplementation` configuration from Gradle build files._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe RemoveGradleUberJarLoaderImplementationConfig +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/replacedeprecatedautoconfiguremongoapi.md b/docs/recipes/java/spring/boot4/replacedeprecatedautoconfiguremongoapi.md new file mode 100644 index 0000000000..0d5df0d3b3 --- /dev/null +++ b/docs/recipes/java/spring/boot4/replacedeprecatedautoconfiguremongoapi.md @@ -0,0 +1,183 @@ +--- +sidebar_label: "Replace deprecated `org.springframework.boot.autoconfigure.mongo` API" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `org.springframework.boot.autoconfigure.mongo` API + +**io.moderne.java.spring.boot4.ReplaceDeprecatedAutoconfigureMongoApi** + +_Replace deprecated `org.springframework.boot.autoconfigure.mongo` API._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + +## Example + + + + + + +###### Before +```java +import com.mongodb.ConnectionString; +import org.bson.UuidRepresentation; +import org.springframework.boot.autoconfigure.mongo.MongoProperties; +import org.springframework.boot.autoconfigure.mongo.StandardMongoClientSettingsBuilderCustomizer; +import org.springframework.boot.ssl.SslBundles; + +class MongoConfig { + StandardMongoClientSettingsBuilderCustomizer createCustomizer( + ConnectionString connectionString, + UuidRepresentation uuidRepresentation, + MongoProperties.Ssl ssl, + SslBundles sslBundles) { + return new StandardMongoClientSettingsBuilderCustomizer(connectionString, uuidRepresentation, ssl, sslBundles); + } +} +``` + +###### After +```java +import com.mongodb.ConnectionString; +import org.bson.UuidRepresentation; +import org.springframework.boot.mongodb.autoconfigure.MongoProperties; +import org.springframework.boot.mongodb.autoconfigure.StandardMongoClientSettingsBuilderCustomizer; +import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails; +import org.springframework.boot.ssl.SslBundles; + +class MongoConfig { + StandardMongoClientSettingsBuilderCustomizer createCustomizer( + ConnectionString connectionString, + UuidRepresentation uuidRepresentation, + MongoProperties.Ssl ssl, + SslBundles sslBundles) { + return new StandardMongoClientSettingsBuilderCustomizer((MongoConnectionDetails) () -> connectionString, uuidRepresentation); + } +} +``` + + + + +```diff +@@ -3,2 +3,3 @@ +import com.mongodb.ConnectionString; +import org.bson.UuidRepresentation; +-import org.springframework.boot.autoconfigure.mongo.MongoProperties; +-import org.springframework.boot.autoconfigure.mongo.StandardMongoClientSettingsBuilderCustomizer; ++import org.springframework.boot.mongodb.autoconfigure.MongoProperties; ++import org.springframework.boot.mongodb.autoconfigure.StandardMongoClientSettingsBuilderCustomizer; ++import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails; +import org.springframework.boot.ssl.SslBundles; +@@ -13,1 +14,1 @@ + MongoProperties.Ssl ssl, + SslBundles sslBundles) { +- return new StandardMongoClientSettingsBuilderCustomizer(connectionString, uuidRepresentation, ssl, sslBundles); ++ return new StandardMongoClientSettingsBuilderCustomizer((MongoConnectionDetails) () -> connectionString, uuidRepresentation); + } +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe ReplaceDeprecatedAutoconfigureMongoApi +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/replacedeprecateddockerapi.md b/docs/recipes/java/spring/boot4/replacedeprecateddockerapi.md new file mode 100644 index 0000000000..6baa6370d5 --- /dev/null +++ b/docs/recipes/java/spring/boot4/replacedeprecateddockerapi.md @@ -0,0 +1,168 @@ +--- +sidebar_label: "Replace deprecated `DockerApi`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `DockerApi` + +**io.moderne.java.spring.boot4.ReplaceDeprecatedDockerApi** + +_Replaces deprecated `DockerApi` constructors and configuration methods with their modern equivalents._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + +## Example + + + + + + +###### Before +```java +import org.springframework.boot.buildpack.platform.docker.DockerApi; +import org.springframework.boot.buildpack.platform.docker.configuration.DockerConfiguration.DockerHostConfiguration; + +class DockerService { + DockerApi createDockerApi(DockerHostConfiguration dockerHost) { + return new DockerApi(dockerHost); + } +} +``` + +###### After +```java +import org.springframework.boot.buildpack.platform.docker.DockerApi; +import org.springframework.boot.buildpack.platform.docker.DockerLog; +import org.springframework.boot.buildpack.platform.docker.configuration.DockerConnectionConfiguration; + +class DockerService { + DockerApi createDockerApi(DockerConnectionConfiguration.Host dockerHost) { + return new DockerApi(dockerHost, DockerLog.toSystemOut()); + } +} +``` + + + + +```diff +@@ -2,1 +2,2 @@ +import org.springframework.boot.buildpack.platform.docker.DockerApi; +-import org.springframework.boot.buildpack.platform.docker.configuration.DockerConfiguration.DockerHostConfiguration; ++import org.springframework.boot.buildpack.platform.docker.DockerLog; ++import org.springframework.boot.buildpack.platform.docker.configuration.DockerConnectionConfiguration; + +@@ -5,2 +6,2 @@ + +class DockerService { +- DockerApi createDockerApi(DockerHostConfiguration dockerHost) { +- return new DockerApi(dockerHost); ++ DockerApi createDockerApi(DockerConnectionConfiguration.Host dockerHost) { ++ return new DockerApi(dockerHost, DockerLog.toSystemOut()); + } +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe ReplaceDeprecatedDockerApi +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/replacedeprecatedthreadpooltaskschedulerbuilderapi.md b/docs/recipes/java/spring/boot4/replacedeprecatedthreadpooltaskschedulerbuilderapi.md new file mode 100644 index 0000000000..a7c80bd309 --- /dev/null +++ b/docs/recipes/java/spring/boot4/replacedeprecatedthreadpooltaskschedulerbuilderapi.md @@ -0,0 +1,187 @@ +--- +sidebar_label: "Replace deprecated `ThreadPoolTaskSchedulerBuilder` constructor" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `ThreadPoolTaskSchedulerBuilder` constructor + +**io.moderne.java.spring.boot4.ReplaceDeprecatedThreadPoolTaskSchedulerBuilderApi** + +_Replaces the deprecated 5-argument constructor of `ThreadPoolTaskSchedulerBuilder` with the builder pattern._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) + +## Example + + + + + + +###### Before +```java +import org.springframework.boot.task.ThreadPoolTaskSchedulerBuilder; +import org.springframework.boot.task.ThreadPoolTaskSchedulerCustomizer; +import java.time.Duration; +import java.util.Collections; +import java.util.Set; + +class Test { + static ThreadPoolTaskSchedulerBuilder create() { + int poolSize = 10; + boolean awaitTermination = true; + Duration awaitTerminationPeriod = Duration.ofSeconds(10); + String threadNamePrefix = "my-scheduler-"; + Set customizers = Collections.emptySet(); + return new ThreadPoolTaskSchedulerBuilder(poolSize, awaitTermination, awaitTerminationPeriod, threadNamePrefix, customizers); + } +} +``` + +###### After +```java +import org.springframework.boot.task.ThreadPoolTaskSchedulerBuilder; +import org.springframework.boot.task.ThreadPoolTaskSchedulerCustomizer; +import java.time.Duration; +import java.util.Collections; +import java.util.Set; + +class Test { + static ThreadPoolTaskSchedulerBuilder create() { + int poolSize = 10; + boolean awaitTermination = true; + Duration awaitTerminationPeriod = Duration.ofSeconds(10); + String threadNamePrefix = "my-scheduler-"; + Set customizers = Collections.emptySet(); + return new ThreadPoolTaskSchedulerBuilder() + .poolSize(poolSize) + .awaitTermination(awaitTermination) + .awaitTerminationPeriod(awaitTerminationPeriod) + .threadNamePrefix(threadNamePrefix) + .customizers(customizers) + .build(); + } +} +``` + + + + +```diff +@@ -14,1 +14,7 @@ + String threadNamePrefix = "my-scheduler-"; + Set customizers = Collections.emptySet(); +- return new ThreadPoolTaskSchedulerBuilder(poolSize, awaitTermination, awaitTerminationPeriod, threadNamePrefix, customizers); ++ return new ThreadPoolTaskSchedulerBuilder() ++ .poolSize(poolSize) ++ .awaitTermination(awaitTermination) ++ .awaitTerminationPeriod(awaitTerminationPeriod) ++ .threadNamePrefix(threadNamePrefix) ++ .customizers(customizers) ++ .build(); + } +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe ReplaceDeprecatedThreadPoolTaskSchedulerBuilderApi +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/boot4/springbootproperties_4_0.md b/docs/recipes/java/spring/boot4/springbootproperties_4_0.md index 22619d974a..03abeb120f 100644 --- a/docs/recipes/java/spring/boot4/springbootproperties_4_0.md +++ b/docs/recipes/java/spring/boot4/springbootproperties_4_0.md @@ -42,12 +42,6 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `management.metrics.mongo.connectionpool.enabled` * newPropertyKey: `management.metrics.mongodb.connectionpool.enabled` -* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) - * oldPropertyKey: `management.observations.long-task-timer.enabled` - * newPropertyKey: `management.metrics.observations.ignored-meters` -* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) - * oldPropertyKey: `management.otlp.logging` - * newPropertyKey: `management.opentelemetry.logging.export.otlp` * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `management.otlp.logging.compression` * newPropertyKey: `management.opentelemetry.logging.export.otlp.compression` @@ -126,6 +120,27 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `management.zipkin.tracing.read-timeout` * newPropertyKey: `management.tracing.export.zipkin.read-timeout` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.include-binding-errors` + * newPropertyKey: `spring.web.error.include-binding-errors` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.include-exception` + * newPropertyKey: `spring.web.error.include-exception` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.include-message` + * newPropertyKey: `spring.web.error.include-message` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.include-path` + * newPropertyKey: `spring.web.error.include-path` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.include-stacktrace` + * newPropertyKey: `spring.web.error.include-stacktrace` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.path` + * newPropertyKey: `spring.web.error.path` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `server.error.whitelabel.enabled` + * newPropertyKey: `spring.web.error.whitelabel.enabled` * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `server.servlet.encoding.charset` * newPropertyKey: `spring.servlet.encoding.charset` @@ -246,6 +261,39 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) * oldPropertyKey: `spring.test.mockmvc.webdriver.enabled` * newPropertyKey: `spring.test.mockmvc.htmlunit.webdriver.enabled` +* [Change the key of a Spring application property](../../../java/spring/changespringpropertykey) + * oldPropertyKey: `spring.test.webclient.mockrestserviceserver.enabled` + * newPropertyKey: `spring.test.restclient.mockrestserviceserver.enabled` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.endpoints.jackson2.isolated-object-mapper` + * comment: `This property is deprecated: Jackson 3 is preferred.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.access-token` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.batch-size` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.connect-timeout` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.enabled` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.published-histogram-type` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.read-timeout` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.source` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.step` + * comment: `This property is deprecated: SignalFX is no longer supported.` +* [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) + * propertyKey: `management.metrics.export.signalfx.uri` + * comment: `This property is deprecated: SignalFX is no longer supported.` * [Comment out Spring properties](../../../java/spring/commentoutspringpropertykey) * propertyKey: `management.wavefront.api-token` * comment: `This property is deprecated: Wavefront is end-of-life.` @@ -412,12 +460,6 @@ recipeList: - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: management.metrics.mongo.connectionpool.enabled newPropertyKey: management.metrics.mongodb.connectionpool.enabled - - org.openrewrite.java.spring.ChangeSpringPropertyKey: - oldPropertyKey: management.observations.long-task-timer.enabled - newPropertyKey: management.metrics.observations.ignored-meters - - org.openrewrite.java.spring.ChangeSpringPropertyKey: - oldPropertyKey: management.otlp.logging - newPropertyKey: management.opentelemetry.logging.export.otlp - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: management.otlp.logging.compression newPropertyKey: management.opentelemetry.logging.export.otlp.compression @@ -496,6 +538,27 @@ recipeList: - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: management.zipkin.tracing.read-timeout newPropertyKey: management.tracing.export.zipkin.read-timeout + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.include-binding-errors + newPropertyKey: spring.web.error.include-binding-errors + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.include-exception + newPropertyKey: spring.web.error.include-exception + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.include-message + newPropertyKey: spring.web.error.include-message + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.include-path + newPropertyKey: spring.web.error.include-path + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.include-stacktrace + newPropertyKey: spring.web.error.include-stacktrace + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.path + newPropertyKey: spring.web.error.path + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: server.error.whitelabel.enabled + newPropertyKey: spring.web.error.whitelabel.enabled - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: server.servlet.encoding.charset newPropertyKey: spring.servlet.encoding.charset @@ -616,6 +679,39 @@ recipeList: - org.openrewrite.java.spring.ChangeSpringPropertyKey: oldPropertyKey: spring.test.mockmvc.webdriver.enabled newPropertyKey: spring.test.mockmvc.htmlunit.webdriver.enabled + - org.openrewrite.java.spring.ChangeSpringPropertyKey: + oldPropertyKey: spring.test.webclient.mockrestserviceserver.enabled + newPropertyKey: spring.test.restclient.mockrestserviceserver.enabled + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.endpoints.jackson2.isolated-object-mapper + comment: This property is deprecated: Jackson 3 is preferred. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.access-token + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.batch-size + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.connect-timeout + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.enabled + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.published-histogram-type + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.read-timeout + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.source + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.step + comment: This property is deprecated: SignalFX is no longer supported. + - org.openrewrite.java.spring.CommentOutSpringPropertyKey: + propertyKey: management.metrics.export.signalfx.uri + comment: This property is deprecated: SignalFX is no longer supported. - org.openrewrite.java.spring.CommentOutSpringPropertyKey: propertyKey: management.wavefront.api-token comment: This property is deprecated: Wavefront is end-of-life. diff --git a/docs/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md b/docs/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md index dca8dd9f1b..9897ba4d8c 100644 --- a/docs/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md +++ b/docs/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md @@ -39,7 +39,49 @@ This recipe is available under the [Moderne Source Available License](https://do * [Migrate to Spring Batch 6.0 from 5.2](../../../java/spring/batch/springbatch5to6migration) * [Migrate Spring Boot properties to 4.0](../../../java/spring/boot4/springbootproperties_4_0) * [Replace `@MockBean` and `@SpyBean`](../../../java/spring/boot4/replacemockbeanandspybean) +* [Migrate to Hibernate 7.1.x](../../../hibernate/migratetohibernate71) * [Migrate to testcontainers-java 2.x](../../../java/testing/testcontainers/testcontainers2migration) +* [Upgrade Gradle or Maven dependency versions](../../../java/dependencies/upgradedependencyversion) + * groupId: `org.springframework.boot` + * artifactId: `*` + * newVersion: `4.0.x` + * overrideManagedVersion: `false` +* [Upgrade Gradle or Maven dependency versions](../../../java/dependencies/upgradedependencyversion) + * groupId: `org.springframework.boot` + * artifactId: `spring-boot-dependencies` + * newVersion: `4.0.x` + * overrideManagedVersion: `true` +* [Upgrade Maven plugin version](../../../maven/upgradepluginversion) + * groupId: `org.springframework.boot` + * artifactId: `spring-boot-maven-plugin` + * newVersion: `4.0.x` +* [Upgrade Maven parent project version](../../../maven/upgradeparentversion) + * groupId: `org.springframework.boot` + * artifactId: `spring-boot-starter-parent` + * newVersion: `4.0.x` +* [Update a Gradle plugin by id](../../../gradle/plugins/upgradepluginversion) + * pluginIdPattern: `org.springframework.boot` + * newVersion: `4.0.x` +* [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) + * oldGroupId: `org.springframework.boot` + * oldArtifactId: `spring-boot-starter-oauth2-authorization-server` + * newArtifactId: `spring-boot-starter-security-oauth2-authorization-server` +* [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) + * oldGroupId: `org.springframework.boot` + * oldArtifactId: `spring-boot-starter-oauth2-client` + * newArtifactId: `spring-boot-starter-security-oauth2-client` +* [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) + * oldGroupId: `org.springframework.boot` + * oldArtifactId: `spring-boot-starter-oauth2-resource-server` + * newArtifactId: `spring-boot-starter-security-oauth2-resource-server` +* [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) + * oldGroupId: `org.springframework.boot` + * oldArtifactId: `spring-boot-starter-web` + * newArtifactId: `spring-boot-starter-webmvc` +* [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) + * oldGroupId: `org.springframework.boot` + * oldArtifactId: `spring-boot-starter-web-services` + * newArtifactId: `spring-boot-starter-webservices` @@ -62,7 +104,49 @@ recipeList: - org.openrewrite.java.spring.batch.SpringBatch5To6Migration - org.openrewrite.java.spring.boot4.SpringBootProperties_4_0 - org.openrewrite.java.spring.boot4.ReplaceMockBeanAndSpyBean + - org.openrewrite.hibernate.MigrateToHibernate71 - org.openrewrite.java.testing.testcontainers.Testcontainers2Migration + - org.openrewrite.java.dependencies.UpgradeDependencyVersion: + groupId: org.springframework.boot + artifactId: "*" + newVersion: 4.0.x + overrideManagedVersion: false + - org.openrewrite.java.dependencies.UpgradeDependencyVersion: + groupId: org.springframework.boot + artifactId: spring-boot-dependencies + newVersion: 4.0.x + overrideManagedVersion: true + - org.openrewrite.maven.UpgradePluginVersion: + groupId: org.springframework.boot + artifactId: spring-boot-maven-plugin + newVersion: 4.0.x + - org.openrewrite.maven.UpgradeParentVersion: + groupId: org.springframework.boot + artifactId: spring-boot-starter-parent + newVersion: 4.0.x + - org.openrewrite.gradle.plugins.UpgradePluginVersion: + pluginIdPattern: org.springframework.boot + newVersion: 4.0.x + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.springframework.boot + oldArtifactId: spring-boot-starter-oauth2-authorization-server + newArtifactId: spring-boot-starter-security-oauth2-authorization-server + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.springframework.boot + oldArtifactId: spring-boot-starter-oauth2-client + newArtifactId: spring-boot-starter-security-oauth2-client + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.springframework.boot + oldArtifactId: spring-boot-starter-oauth2-resource-server + newArtifactId: spring-boot-starter-security-oauth2-resource-server + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.springframework.boot + oldArtifactId: spring-boot-starter-web + newArtifactId: spring-boot-starter-webmvc + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.springframework.boot + oldArtifactId: spring-boot-starter-web-services + newArtifactId: spring-boot-starter-webservices ``` diff --git a/docs/recipes/java/spring/changespringpropertykey.md b/docs/recipes/java/spring/changespringpropertykey.md index e862be528e..e1e3b2ea62 100644 --- a/docs/recipes/java/spring/changespringpropertykey.md +++ b/docs/recipes/java/spring/changespringpropertykey.md @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem'; **org.openrewrite.java.spring.ChangeSpringPropertyKey** -_Change Spring application property keys existing in either Properties or YAML files, and in `@Value` annotations._ +_Change Spring application property keys existing in either Properties or YAML files, and in `@Value`, `@ConditionalOnProperty` or `@SpringBootTest` annotations._ ## Recipe source diff --git a/docs/recipes/java/spring/changespringpropertyvalue.md b/docs/recipes/java/spring/changespringpropertyvalue.md index b2f30127e9..7ad392bbe9 100644 --- a/docs/recipes/java/spring/changespringpropertyvalue.md +++ b/docs/recipes/java/spring/changespringpropertyvalue.md @@ -37,6 +37,7 @@ This recipe is used as part of the following composite recipes: * [Migrate Enabled to Access Spring Boot Properties](/recipes/java/spring/boot3/springbootproperties_3_4_enabledtoaccess.md) * [Migrate from Spring Boot 1.x to 2.0](/recipes/java/spring/boot2/upgradespringboot_2_0.md) * [Migrate to Spring Boot 2.7](/recipes/java/spring/boot2/upgradespringboot_2_7.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) ## Example diff --git a/docs/recipes/java/spring/hibernate/README.md b/docs/recipes/java/spring/hibernate/README.md new file mode 100644 index 0000000000..c8c65797e3 --- /dev/null +++ b/docs/recipes/java/spring/hibernate/README.md @@ -0,0 +1,8 @@ +# Hibernate + +## Recipes + +* [Migrate `HibernateDaoSupport#getHibernateTemplate#saveOrUpdateAll`](./migratesaveorupdateall.md) +* [Migrate `HibernateDaoSupport#getSession()` usage](./migratedaosupportgetsession.md) + + diff --git a/docs/recipes/java/spring/hibernate/migratedaosupportgetsession.md b/docs/recipes/java/spring/hibernate/migratedaosupportgetsession.md new file mode 100644 index 0000000000..d568db5aca --- /dev/null +++ b/docs/recipes/java/spring/hibernate/migratedaosupportgetsession.md @@ -0,0 +1,180 @@ +--- +sidebar_label: "Migrate `HibernateDaoSupport#getSession()` usage" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate `HibernateDaoSupport#getSession()` usage + +**io.moderne.java.spring.hibernate.MigrateDaoSupportGetSession** + +_Migrate `HibernateDaoSupport#getSession()` usage to `HibernateDaoSupport#getSessionFactory()#getCurrentSession()` and annotate the methods with `@Transactional`._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) + +## Example + + + + + + +###### Before +```java +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.hibernate.Session; + +public class UserDao extends HibernateDaoSupport { + public User findById(Long id) { + Session session = this.getSession(); + try { + return session.get(User.class, id); + } finally { + releaseSession(session); + } + } +} +``` + +###### After +```java +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.springframework.transaction.annotation.Transactional; +import org.hibernate.Session; + +public class UserDao extends HibernateDaoSupport { + @Transactional + public User findById(Long id) { + Session session = this.getSessionFactory().getCurrentSession(); + try { + return session.get(User.class, id); + } finally { + releaseSession(session); + } + } +} +``` + + + + +```diff +@@ -2,0 +2,1 @@ +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; ++import org.springframework.transaction.annotation.Transactional; +import org.hibernate.Session; +@@ -5,0 +6,1 @@ + +public class UserDao extends HibernateDaoSupport { ++ @Transactional + public User findById(Long id) { +@@ -6,1 +8,1 @@ +public class UserDao extends HibernateDaoSupport { + public User findById(Long id) { +- Session session = this.getSession(); ++ Session session = this.getSessionFactory().getCurrentSession(); + try { +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateDaoSupportGetSession +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/hibernate/migratesaveorupdateall.md b/docs/recipes/java/spring/hibernate/migratesaveorupdateall.md new file mode 100644 index 0000000000..4e13ad6b13 --- /dev/null +++ b/docs/recipes/java/spring/hibernate/migratesaveorupdateall.md @@ -0,0 +1,165 @@ +--- +sidebar_label: "Migrate `HibernateDaoSupport#getHibernateTemplate#saveOrUpdateAll`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate `HibernateDaoSupport#getHibernateTemplate#saveOrUpdateAll` + +**io.moderne.java.spring.hibernate.MigrateSaveOrUpdateAll** + +_Migrate removed `HibernateDaoSupport#getHibernateTemplate#.saveOrUpdateAll` to an iterative `HibernateDaoSupport#getHibernateTemplate#.saveOrUpdate`._ + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) + +## Example + + + + + + +###### Before +```java +import java.util.Collection; +import org.domain.User; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; + +class UserDao extends HibernateDaoSupport { + public void save(Collection users) { + this.getHibernateTemplate().saveOrUpdateAll(users); + } +} +``` + +###### After +```java +import java.util.Collection; +import org.domain.User; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; + +class UserDao extends HibernateDaoSupport { + public void save(Collection users) { + for (Object o : users) { + this.getHibernateTemplate().saveOrUpdate(o); + } + } +} +``` + + + + +```diff +@@ -7,1 +7,3 @@ +class UserDao extends HibernateDaoSupport { + public void save(Collection users) { +- this.getHibernateTemplate().saveOrUpdateAll(users); ++ for (Object o : users) { ++ this.getHibernateTemplate().saveOrUpdate(o); ++ } + } +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe MigrateSaveOrUpdateAll +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/orm/README.md b/docs/recipes/java/spring/orm/README.md new file mode 100644 index 0000000000..02162636b0 --- /dev/null +++ b/docs/recipes/java/spring/orm/README.md @@ -0,0 +1,9 @@ +# Orm + +## Composite Recipes + +_Recipes that include further recipes, often including the individual recipes below._ + +* [Migrate to Spring ORM to 5](./springorm5.md) + + diff --git a/docs/recipes/java/spring/orm/springorm5.md b/docs/recipes/java/spring/orm/springorm5.md new file mode 100644 index 0000000000..f6bd6c06ef --- /dev/null +++ b/docs/recipes/java/spring/orm/springorm5.md @@ -0,0 +1,242 @@ +--- +sidebar_label: "Migrate to Spring ORM to 5" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate to Spring ORM to 5 + +**io.moderne.java.spring.orm.SpringORM5** + +_Migrate applications using Spring ORM Hibernate Support to Hibernate 5 compatible version. This will enable a further migration by the Spring Framework migration past 5._ + +### Tags + +* [spring](/reference/recipes-by-tag#spring) +* [hibernate](/reference/recipes-by-tag#hibernate) + +## Recipe source + +This recipe is only available to users of [Moderne](https://docs.moderne.io/). + + +This recipe is available under the [Moderne Proprietary License](https://docs.moderne.io/licensing/overview). + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Boot 2.0](/recipes/java/spring/boot2/upgradespringboot_2_0.md) + +## Examples +##### Example 1 +`MigrateConvertToHibernateAccessExceptionTest#migrate` + + + + + + +###### Before +```java +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.hibernate.HibernateException; + +class UserDoa extends HibernateDaoSupport { + void doIt() { + try { + // ... hibernate operations + } catch (HibernateException ex) { + throw this.convertHibernateAccessException(ex); + } + } +} +``` + +###### After +```java +import org.springframework.orm.hibernate5.SessionFactoryUtils; +import org.springframework.orm.hibernate5.support.HibernateDaoSupport; +import org.hibernate.HibernateException; + +class UserDoa extends HibernateDaoSupport { + void doIt() { + try { + // ... hibernate operations + } catch (HibernateException ex) { + throw SessionFactoryUtils.convertHibernateAccessException(ex); + } + } +} +``` + + + + +```diff +@@ -1,1 +1,2 @@ +-import org.springframework.orm.hibernate3.support.HibernateDaoSupport; ++import org.springframework.orm.hibernate5.SessionFactoryUtils; ++import org.springframework.orm.hibernate5.support.HibernateDaoSupport; +import org.hibernate.HibernateException; +@@ -9,1 +10,1 @@ + // ... hibernate operations + } catch (HibernateException ex) { +- throw this.convertHibernateAccessException(ex); ++ throw SessionFactoryUtils.convertHibernateAccessException(ex); + } +``` + + + +--- + +##### Example 2 +`MigrateConvertToHibernateAccessExceptionTest#migrate` + + + + + + +###### Before +```java +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.hibernate.HibernateException; + +class UserDoa extends HibernateDaoSupport { + void doIt() { + try { + // ... hibernate operations + } catch (HibernateException ex) { + throw this.convertHibernateAccessException(ex); + } + } +} +``` + +###### After +```java +import org.springframework.orm.hibernate5.SessionFactoryUtils; +import org.springframework.orm.hibernate5.support.HibernateDaoSupport; +import org.hibernate.HibernateException; + +class UserDoa extends HibernateDaoSupport { + void doIt() { + try { + // ... hibernate operations + } catch (HibernateException ex) { + throw SessionFactoryUtils.convertHibernateAccessException(ex); + } + } +} +``` + + + + +```diff +@@ -1,1 +1,2 @@ +-import org.springframework.orm.hibernate3.support.HibernateDaoSupport; ++import org.springframework.orm.hibernate5.SessionFactoryUtils; ++import org.springframework.orm.hibernate5.support.HibernateDaoSupport; +import org.hibernate.HibernateException; +@@ -9,1 +10,1 @@ + // ... hibernate operations + } catch (HibernateException ex) { +- throw this.convertHibernateAccessException(ex); ++ throw SessionFactoryUtils.convertHibernateAccessException(ex); + } +``` + + + + +## Usage + +This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI: + + + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe SpringORM5 +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install io.moderne.recipe:rewrite-spring:{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/security7/README.md b/docs/recipes/java/spring/security7/README.md index 10f60a0b21..99fe786696 100644 --- a/docs/recipes/java/spring/security7/README.md +++ b/docs/recipes/java/spring/security7/README.md @@ -1,7 +1,10 @@ # Security7 -## Recipes +## Composite Recipes + +_Recipes that include further recipes, often including the individual recipes below._ * [Migrate to Spring Security 7.0](./upgradespringsecurity_7_0.md) +* [Remove throws exception in `SecurityConfigurer` methods `init` and `configure`](./securityconfigurerremovethrowsexception.md) diff --git a/docs/recipes/java/spring/security7/securityconfigurerremovethrowsexception.md b/docs/recipes/java/spring/security7/securityconfigurerremovethrowsexception.md new file mode 100644 index 0000000000..d148698145 --- /dev/null +++ b/docs/recipes/java/spring/security7/securityconfigurerremovethrowsexception.md @@ -0,0 +1,267 @@ +--- +sidebar_label: "Remove throws exception in `SecurityConfigurer` methods `init` and `configure`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Remove throws exception in `SecurityConfigurer` methods `init` and `configure` + +**org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException** + +_Remove throws exception in `SecurityConfigurer` methods `init` and `configure`._ + +### Tags + +* [spring](/reference/recipes-by-tag#spring) +* [security](/reference/recipes-by-tag#security) + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-spring/blob/main/src/main/resources/META-INF/rewrite/spring-security-70.yml), +[Issue Tracker](https://github.com/openrewrite/rewrite-spring/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-spring/) + +:::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 + + + +* [Remove elements from a method declaration `throws` clause](../../../java/removemethodthrows) + * methodPattern: `org.springframework.security.config.annotation.SecurityConfigurer init(..)` + * matchOverrides: `true` + * exceptionTypePattern: `java.lang.Exception` +* [Remove elements from a method declaration `throws` clause](../../../java/removemethodthrows) + * methodPattern: `org.springframework.security.config.annotation.SecurityConfigurer configure(..)` + * matchOverrides: `true` + * exceptionTypePattern: `java.lang.Exception` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException +displayName: Remove throws exception in `SecurityConfigurer` methods `init` and `configure` +description: | + Remove throws exception in `SecurityConfigurer` methods `init` and `configure`. +tags: + - spring + - security +recipeList: + - org.openrewrite.java.RemoveMethodThrows: + methodPattern: org.springframework.security.config.annotation.SecurityConfigurer init(..) + matchOverrides: true + exceptionTypePattern: java.lang.Exception + - org.openrewrite.java.RemoveMethodThrows: + methodPattern: org.springframework.security.config.annotation.SecurityConfigurer configure(..) + matchOverrides: true + exceptionTypePattern: java.lang.Exception + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to Spring Security 7.0](/recipes/java/spring/security7/upgradespringsecurity_7_0.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-spring` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}") + } + rewrite { + activeRecipe("org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException + + + + + org.openrewrite.recipe + rewrite-spring + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe SecurityConfigurerRemoveThrowsException +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-spring:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}} +``` + + + +## 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 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/spring/security7/upgradespringsecurity_7_0.md b/docs/recipes/java/spring/security7/upgradespringsecurity_7_0.md index 0426c43d10..530d70bc80 100644 --- a/docs/recipes/java/spring/security7/upgradespringsecurity_7_0.md +++ b/docs/recipes/java/spring/security7/upgradespringsecurity_7_0.md @@ -22,6 +22,10 @@ _Migrate applications to the latest Spring Security 7.0 release. This recipe wil [Issue Tracker](https://github.com/openrewrite/rewrite-spring/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-spring/) +:::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). @@ -34,6 +38,7 @@ This recipe is available under the [Moderne Source Available License](https://do * artifactId: `*` * newVersion: `7.0.x` * overrideManagedVersion: `false` +* [Remove throws exception in `SecurityConfigurer` methods `init` and `configure`](../../../java/spring/security7/securityconfigurerremovethrowsexception) @@ -55,6 +60,7 @@ recipeList: artifactId: "*" newVersion: 7.0.x overrideManagedVersion: false + - org.openrewrite.java.spring.security7.SecurityConfigurerRemoveThrowsException ``` diff --git a/docs/recipes/java/springdoc/upgradespringdoc_2.md b/docs/recipes/java/springdoc/upgradespringdoc_2.md index 1d44aa4450..d06cb1cae5 100644 --- a/docs/recipes/java/springdoc/upgradespringdoc_2.md +++ b/docs/recipes/java/springdoc/upgradespringdoc_2.md @@ -32,6 +32,7 @@ This recipe is available under the [Moderne Source Available License](https://do +* [Migrate from Swagger to OpenAPI](../../openapi/swagger/swaggertoopenapi) * [Use Jakarta Swagger Artifacts](../../openapi/swagger/usejakartaswaggerartifacts) * [Change type](../../java/changetype) * oldFullyQualifiedTypeName: `org.springdoc.core.SpringDocUtils` @@ -117,6 +118,7 @@ description: | tags: - springdoc recipeList: + - org.openrewrite.openapi.swagger.SwaggerToOpenAPI - org.openrewrite.openapi.swagger.UseJakartaSwaggerArtifacts - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: org.springdoc.core.SpringDocUtils diff --git a/docs/recipes/java/testing/assertj/README.md b/docs/recipes/java/testing/assertj/README.md index fd354b7e4c..71f9285bd0 100644 --- a/docs/recipes/java/testing/assertj/README.md +++ b/docs/recipes/java/testing/assertj/README.md @@ -76,6 +76,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Simplify AssertJ assertions with `hasSize` argument](./simplifyhassizeassertion.md) * [Simplify AssertJ assertions with literal arguments](./simplifyassertjassertion.md) * [Simplify AssertJ chained assertions](./simplifychainedassertjassertion.md) +* [Simplify `assertThat(collection.stream().map(...))` to `assertThat(collection).extracting(...)`](./simplifystreammaptoextracting.md) * [Simplify redundant AssertJ assertion chains](./simplifyredundantassertjchains.md) diff --git a/docs/recipes/java/testing/assertj/assertj-best-practices.md b/docs/recipes/java/testing/assertj/assertj-best-practices.md index a0dcb7388c..c0ac01a9ab 100644 --- a/docs/recipes/java/testing/assertj/assertj-best-practices.md +++ b/docs/recipes/java/testing/assertj/assertj-best-practices.md @@ -53,6 +53,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Shorten AssertJ assertions](../../../java/testing/assertj/simplifyassertjassertions) * [Simplify AssertJ assertions with `hasSize` argument](../../../java/testing/assertj/simplifyhassizeassertion) * [Simplify AssertJ assertions on SequencedCollection](../../../java/testing/assertj/simplifysequencedcollectionassertions) +* [Simplify `assertThat(collection.stream().map(...))` to `assertThat(collection).extracting(...)`](../../../java/testing/assertj/simplifystreammaptoextracting) * [Refaster rules related to AssertJ assertions over `BigDecimal`s](../../../tech/picnic/errorprone/refasterrules/assertjbigdecimalrulesrecipes) * [Adopt AssertJ BigInteger Assertions](../../../java/testing/assertj/assertjbigintegerrulesrecipes) * [`AssertJBooleanRules` Refaster recipes](../../../tech/picnic/errorprone/refasterrules/assertjbooleanrulesrecipes) @@ -117,6 +118,7 @@ recipeList: - org.openrewrite.java.testing.assertj.SimplifyAssertJAssertions - org.openrewrite.java.testing.assertj.SimplifyHasSizeAssertion - org.openrewrite.java.testing.assertj.SimplifySequencedCollectionAssertions + - org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting - tech.picnic.errorprone.refasterrules.AssertJBigDecimalRulesRecipes - org.openrewrite.java.testing.assertj.AssertJBigIntegerRulesRecipes - tech.picnic.errorprone.refasterrules.AssertJBooleanRulesRecipes diff --git a/docs/recipes/java/testing/assertj/simplifystreammaptoextracting.md b/docs/recipes/java/testing/assertj/simplifystreammaptoextracting.md new file mode 100644 index 0000000000..f41373b603 --- /dev/null +++ b/docs/recipes/java/testing/assertj/simplifystreammaptoextracting.md @@ -0,0 +1,264 @@ +--- +sidebar_label: "Simplify `assertThat(collection.stream().map(...))` to `assertThat(collection).extracting(...)`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Simplify `assertThat(collection.stream().map(...))` to `assertThat(collection).extracting(...)` + +**org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting** + +_Simplifies AssertJ assertions that use `stream().map()` to extract values from a collection by using the dedicated `extracting()` method instead. This makes the assertion more readable and leverages AssertJ's built-in extraction capabilities._ + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/assertj/SimplifyStreamMapToExtracting.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: + +* [AssertJ best practices](/recipes/java/testing/assertj/assertj-best-practices.md) + +## Example + + + + + + +###### Before +```java +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class MyTest { + void testMethod(List rows) { + assertThat(rows.stream().map(Row::getValue)).contains("a"); + } +} +``` + +###### After +```java +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class MyTest { + void testMethod(List rows) { + assertThat(rows).extracting(Row::getValue).contains("a"); + } +} +``` + + + + +```diff +@@ -7,1 +7,1 @@ +class MyTest { + void testMethod(List rows) { +- assertThat(rows.stream().map(Row::getValue)).contains("a"); ++ assertThat(rows).extracting(Row::getValue).contains("a"); + } +``` + + + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-testing-frameworks` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}") + } + rewrite { + activeRecipe("org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting + + + + + org.openrewrite.recipe + rewrite-testing-frameworks + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-testing-frameworks:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.testing.assertj.SimplifyStreamMapToExtracting -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe SimplifyStreamMapToExtracting +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}} +``` + + + +## 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 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/hamcrest/migratehamcresttoassertj.md b/docs/recipes/java/testing/hamcrest/migratehamcresttoassertj.md index 4c807b66e4..4e0b957da0 100644 --- a/docs/recipes/java/testing/hamcrest/migratehamcresttoassertj.md +++ b/docs/recipes/java/testing/hamcrest/migratehamcresttoassertj.md @@ -41,8 +41,8 @@ This recipe is available under the [Moderne Source Available License](https://do * onlyIfUsing: `org.hamcrest.*` * acceptTransitive: `true` * [Use consistent Hamcrest matcher imports](../../../java/testing/hamcrest/consistenthamcrestmatcherimports) -* [Migrate Hamcrest `is(Object)` to AssertJ](../../../java/testing/hamcrest/hamcrestismatchertoassertj) * [Migrate `anyOf` Hamcrest Matcher to AssertJ](../../../java/testing/hamcrest/hamcrestofmatcherstoassertj) +* [Migrate Hamcrest `is(Object)` to AssertJ](../../../java/testing/hamcrest/hamcrestismatchertoassertj) * [Migrate Hamcrest `assertThat(boolean, Matcher)` to AssertJ](../../../java/testing/hamcrest/assertthatbooleantoassertj) * [Migrate from Hamcrest `Matcher` to AssertJ](../../../java/testing/hamcrest/hamcrestmatchertoassertj) * matcher: `comparesEqualTo` @@ -308,8 +308,8 @@ recipeList: onlyIfUsing: org.hamcrest.* acceptTransitive: true - org.openrewrite.java.testing.hamcrest.ConsistentHamcrestMatcherImports - - org.openrewrite.java.testing.hamcrest.HamcrestIsMatcherToAssertJ - org.openrewrite.java.testing.hamcrest.HamcrestOfMatchersToAssertJ + - org.openrewrite.java.testing.hamcrest.HamcrestIsMatcherToAssertJ - org.openrewrite.java.testing.hamcrest.AssertThatBooleanToAssertJ - org.openrewrite.java.testing.hamcrest.HamcrestMatcherToAssertJ: matcher: comparesEqualTo diff --git a/docs/recipes/java/testing/junit5/README.md b/docs/recipes/java/testing/junit5/README.md index 0720d991df..94dd9b7fff 100644 --- a/docs/recipes/java/testing/junit5/README.md +++ b/docs/recipes/java/testing/junit5/README.md @@ -7,7 +7,7 @@ _Best practices for JUnit Jupiter tests._ _Recipes that include further recipes, often including the individual recipes below._ * [Clean Up Assertions](./cleanupassertions.md) -* [Exclude JUnit 4, unless Spring Boot Testcontainers is used](./excludejunit4unlessusingtestcontainers.md) +* [Exclude JUnit 4, unless Testcontainers is used](./excludejunit4unlessusingtestcontainers.md) * [JUnit 5 best practices](./junit5bestpractices.md) * [JUnit Jupiter migration from JUnit 4.x](./junit4to5migration.md) * [Upgrade Surefire Plugin](./upgradesurefireplugin.md) diff --git a/docs/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md b/docs/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md index 4b48947652..9c64e1688c 100644 --- a/docs/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md +++ b/docs/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md @@ -1,15 +1,15 @@ --- -sidebar_label: "Exclude JUnit 4, unless Spring Boot Testcontainers is used" +sidebar_label: "Exclude JUnit 4, unless Testcontainers is used" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Exclude JUnit 4, unless Spring Boot Testcontainers is used +# Exclude JUnit 4, unless Testcontainers is used **org.openrewrite.java.testing.junit5.ExcludeJUnit4UnlessUsingTestcontainers** -_Excludes JUnit 4, as it ought not to be necessary in a JUnit 5 project, unless Testcontainers 1.x is used._ +_Excludes JUnit 4, as it ought not to be necessary in a JUnit 5 project, unless Testcontainers is used._ ## Recipe source @@ -28,7 +28,6 @@ This recipe is available under the [Moderne Source Available License](https://do -* [Migrate to testcontainers-java 2.x](../../../java/testing/testcontainers/testcontainers2migration) * [Exclude Maven dependency](../../../maven/excludedependency) * groupId: `junit` * artifactId: `junit` @@ -41,11 +40,10 @@ This recipe is available under the [Moderne Source Available License](https://do --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.testing.junit5.ExcludeJUnit4UnlessUsingTestcontainers -displayName: Exclude JUnit 4, unless Spring Boot Testcontainers is used +displayName: Exclude JUnit 4, unless Testcontainers is used description: | - Excludes JUnit 4, as it ought not to be necessary in a JUnit 5 project, unless Testcontainers 1.x is used. + Excludes JUnit 4, as it ought not to be necessary in a JUnit 5 project, unless Testcontainers is used. recipeList: - - org.openrewrite.java.testing.testcontainers.Testcontainers2Migration - org.openrewrite.maven.ExcludeDependency: groupId: junit artifactId: junit diff --git a/docs/recipes/java/testing/junit5/junit4to5migration.md b/docs/recipes/java/testing/junit5/junit4to5migration.md index c81569aa71..c6c6af05de 100644 --- a/docs/recipes/java/testing/junit5/junit4to5migration.md +++ b/docs/recipes/java/testing/junit5/junit4to5migration.md @@ -77,7 +77,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Remove a Gradle or Maven dependency](../../../java/dependencies/removedependency) * groupId: `junit` * artifactId: `junit` -* [Exclude JUnit 4, unless Spring Boot Testcontainers is used](../../../java/testing/junit5/excludejunit4unlessusingtestcontainers) +* [Exclude JUnit 4, unless Testcontainers is used](../../../java/testing/junit5/excludejunit4unlessusingtestcontainers) * [Remove a Gradle or Maven dependency](../../../java/dependencies/removedependency) * groupId: `org.junit.vintage` * artifactId: `junit-vintage-engine` @@ -395,26 +395,20 @@ public class MockitoTests { ```java package org.openrewrite.java.testing.junit5; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; import java.util.List; import static org.mockito.Mockito.verify; +@ExtendWith(MockitoExtension.class) public class MockitoTests { - private AutoCloseable mocks; @Mock List mockedList; - @BeforeEach - public void initMocks() { - mocks = MockitoAnnotations.openMocks(this); - } - @Test public void usingAnnotationBasedMock() { @@ -424,11 +418,6 @@ public class MockitoTests { verify(mockedList).add("one"); verify(mockedList).clear(); } - - @AfterEach - void tearDown() throws Exception { - mocks.close(); - } } ``` @@ -436,41 +425,34 @@ public class MockitoTests { ```diff -@@ -3,2 +3,3 @@ +@@ -3,2 +3,2 @@ package org.openrewrite.java.testing.junit5; -import org.junit.Before; -import org.junit.Test; -+import org.junit.jupiter.api.AfterEach; -+import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +@@ -6,1 +6,1 @@ +import org.junit.Test; import org.mockito.Mock; -@@ -13,0 +14,1 @@ +-import org.mockito.MockitoAnnotations; ++import org.mockito.junit.jupiter.MockitoExtension; + +@@ -12,0 +12,1 @@ +import static org.mockito.Mockito.verify; ++@ExtendWith(MockitoExtension.class) public class MockitoTests { -+ private AutoCloseable mocks; - @Mock -@@ -16,1 +18,1 @@ +@@ -16,5 +17,0 @@ List mockedList; - @Before -+ @BeforeEach - public void initMocks() { -@@ -18,1 +20,1 @@ - @Before - public void initMocks() { +- public void initMocks() { - MockitoAnnotations.initMocks(this); -+ mocks = MockitoAnnotations.openMocks(this); - } -@@ -30,0 +32,5 @@ - verify(mockedList).clear(); - } -+ -+ @AfterEach -+ void tearDown() throws Exception { -+ mocks.close(); -+ } -} +- } +- + @Test ``` @@ -661,26 +643,20 @@ public class MockitoTests { ```java package org.openrewrite.java.testing.junit5; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; import java.util.List; import static org.mockito.Mockito.verify; +@ExtendWith(MockitoExtension.class) public class MockitoTests { - private AutoCloseable mocks; @Mock List mockedList; - @BeforeEach - public void initMocks() { - mocks = MockitoAnnotations.openMocks(this); - } - @Test public void usingAnnotationBasedMock() { @@ -690,11 +666,6 @@ public class MockitoTests { verify(mockedList).add("one"); verify(mockedList).clear(); } - - @AfterEach - void tearDown() throws Exception { - mocks.close(); - } } ``` @@ -702,41 +673,34 @@ public class MockitoTests { ```diff -@@ -3,2 +3,3 @@ +@@ -3,2 +3,2 @@ package org.openrewrite.java.testing.junit5; -import org.junit.Before; -import org.junit.Test; -+import org.junit.jupiter.api.AfterEach; -+import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +@@ -6,1 +6,1 @@ +import org.junit.Test; import org.mockito.Mock; -@@ -13,0 +14,1 @@ +-import org.mockito.MockitoAnnotations; ++import org.mockito.junit.jupiter.MockitoExtension; + +@@ -12,0 +12,1 @@ +import static org.mockito.Mockito.verify; ++@ExtendWith(MockitoExtension.class) public class MockitoTests { -+ private AutoCloseable mocks; - @Mock -@@ -16,1 +18,1 @@ +@@ -16,5 +17,0 @@ List mockedList; - @Before -+ @BeforeEach - public void initMocks() { -@@ -18,1 +20,1 @@ - @Before - public void initMocks() { +- public void initMocks() { - MockitoAnnotations.initMocks(this); -+ mocks = MockitoAnnotations.openMocks(this); - } -@@ -30,0 +32,5 @@ - verify(mockedList).clear(); - } -+ -+ @AfterEach -+ void tearDown() throws Exception { -+ mocks.close(); -+ } -} +- } +- + @Test ``` diff --git a/docs/recipes/java/testing/mockito/README.md b/docs/recipes/java/testing/mockito/README.md index a2f2b1e40c..16497db9dd 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 ## Recipes +* [Adds Mockito extensions to Mockito tests](./addmockitoextensionifannotationsused.md) * [Call to Mockito method "verify", "when" or "given" should be simplified](./simplifymockitoverifywhengiven.md) * [Cleanup Mockito imports](./cleanupmockitoimports.md) * [Cleanup PowerMock imports](./cleanuppowermockimports.md) diff --git a/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md b/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md new file mode 100644 index 0000000000..243df34c23 --- /dev/null +++ b/docs/recipes/java/testing/mockito/addmockitoextensionifannotationsused.md @@ -0,0 +1,275 @@ +--- +sidebar_label: "Adds Mockito extensions to Mockito tests" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Adds Mockito extensions to Mockito tests + +**org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed** + +_Adds `@ExtendWith(MockitoExtension.class)` to tests using `@Mock` or `@Captor`._ + +## Recipe source + +[GitHub](https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/mockito/AddMockitoExtensionIfAnnotationsUsed.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: + +* [Mockito 3.x migration from 1.x](/recipes/java/testing/mockito/mockito1to3migration.md) + +## Example + + + + + + +###### Before +```java +import org.junit.jupiter.api.Test; +import org.mockito.Mock; + +class Test { + @Mock + Service service; + @Test + void test() {} +} +``` + +###### After +```java +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class Test { + @Mock + Service service; + @Test + void test() {} +} +``` + + + + +```diff +@@ -2,0 +2,1 @@ +import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +@@ -3,0 +4,1 @@ +import org.junit.jupiter.api.Test; +import org.mockito.Mock; ++import org.mockito.junit.jupiter.MockitoExtension; + +@@ -4,0 +6,1 @@ +import org.mockito.Mock; + ++@ExtendWith(MockitoExtension.class) +class Test { +``` + + + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-testing-frameworks` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}") + } + rewrite { + activeRecipe("org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed + + + + + org.openrewrite.recipe + rewrite-testing-frameworks + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-testing-frameworks:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe AddMockitoExtensionIfAnnotationsUsed +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-testing-frameworks:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}} +``` + + + +## 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 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/mockito1to3migration.md b/docs/recipes/java/testing/mockito/mockito1to3migration.md index 8258c5ae2a..3e4919a73f 100644 --- a/docs/recipes/java/testing/mockito/mockito1to3migration.md +++ b/docs/recipes/java/testing/mockito/mockito1to3migration.md @@ -105,6 +105,7 @@ This recipe is available under the [Moderne Source Available License](https://do * [Cleanup Mockito imports](../../../java/testing/mockito/cleanupmockitoimports) * [Use static form of Mockito `MockUtil`](../../../java/testing/mockito/mockutilstostatic) * [JUnit 4 `MockitoJUnit` to JUnit Jupiter `MockitoExtension`](../../../java/testing/junit5/mockitojunittomockitoextension) +* [Adds Mockito extensions to Mockito tests](../../../java/testing/mockito/addmockitoextensionifannotationsused) * [Remove `MockitoAnnotations.initMocks(this)` if specified JUnit runners](../../../java/testing/mockito/removeinitmocksifrunnersspecified) * [Replace PowerMock with raw Mockito](../../../java/testing/mockito/replacepowermockito) * [Change Gradle or Maven dependency](../../../java/dependencies/changedependency) @@ -211,6 +212,7 @@ recipeList: - org.openrewrite.java.testing.mockito.CleanupMockitoImports - org.openrewrite.java.testing.mockito.MockUtilsToStatic - org.openrewrite.java.testing.junit5.MockitoJUnitToMockitoExtension + - org.openrewrite.java.testing.mockito.AddMockitoExtensionIfAnnotationsUsed - org.openrewrite.java.testing.mockito.RemoveInitMocksIfRunnersSpecified - org.openrewrite.java.testing.mockito.ReplacePowerMockito - org.openrewrite.java.dependencies.ChangeDependency: @@ -340,13 +342,16 @@ class MyTest { ```java import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; +@ExtendWith(MockitoExtension.class) class MyTest { @Mock Object objectMock; @@ -369,7 +374,17 @@ class MyTest { ```diff -@@ -5,3 +5,3 @@ +@@ -3,0 +3,1 @@ +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +@@ -4,0 +5,1 @@ +import org.junit.jupiter.api.Test; +import org.mockito.Mock; ++import org.mockito.junit.jupiter.MockitoExtension; + +@@ -5,3 +7,3 @@ import org.mockito.Mock; -import static org.mockito.Matchers.anyListOf; @@ -379,7 +394,12 @@ import org.mockito.Mock; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; -@@ -23,1 +23,1 @@ +@@ -10,0 +12,1 @@ +import static org.mockito.Mockito.when; + ++@ExtendWith(MockitoExtension.class) +class MyTest { +@@ -23,1 +26,1 @@ @Test void someTest() { - when(subject.someMethod(anyObject(), anyString(), anyListOf(String.class))).thenReturn(false); @@ -666,13 +686,16 @@ class MyTest { ```java import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; +@ExtendWith(MockitoExtension.class) class MyTest { @Mock Object objectMock; @@ -695,7 +718,17 @@ class MyTest { ```diff -@@ -5,3 +5,3 @@ +@@ -3,0 +3,1 @@ +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +@@ -4,0 +5,1 @@ +import org.junit.jupiter.api.Test; +import org.mockito.Mock; ++import org.mockito.junit.jupiter.MockitoExtension; + +@@ -5,3 +7,3 @@ import org.mockito.Mock; -import static org.mockito.Matchers.anyListOf; @@ -705,7 +738,12 @@ import org.mockito.Mock; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; -@@ -23,1 +23,1 @@ +@@ -10,0 +12,1 @@ +import static org.mockito.Mockito.when; + ++@ExtendWith(MockitoExtension.class) +class MyTest { +@@ -23,1 +26,1 @@ @Test void someTest() { - when(subject.someMethod(anyObject(), anyString(), anyListOf(String.class))).thenReturn(false); diff --git a/docs/recipes/java/testing/testcontainers/testcontainers2migration.md b/docs/recipes/java/testing/testcontainers/testcontainers2migration.md index c2040a43e5..d72996b779 100644 --- a/docs/recipes/java/testing/testcontainers/testcontainers2migration.md +++ b/docs/recipes/java/testing/testcontainers/testcontainers2migration.md @@ -66,7 +66,6 @@ recipeList: This recipe is used as part of the following composite recipes: -* [Exclude JUnit 4, unless Spring Boot Testcontainers is used](/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md) * [Migrate to Spring Boot 4.0 (Community Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md) * [Testcontainers best practices](/recipes/java/testing/testcontainers/testcontainersbestpractices.md) diff --git a/docs/recipes/java/testing/truth/migratetruthtoassertj.md b/docs/recipes/java/testing/truth/migratetruthtoassertj.md index d25aa908c4..1d5a8d2c47 100644 --- a/docs/recipes/java/testing/truth/migratetruthtoassertj.md +++ b/docs/recipes/java/testing/truth/migratetruthtoassertj.md @@ -188,7 +188,6 @@ This recipe is available under the [Moderne Source Available License](https://do * [Change type](../../../java/changetype) * oldFullyQualifiedTypeName: `com.google.common.truth.ThrowableSubject` * newFullyQualifiedTypeName: `org.assertj.core.api.AbstractThrowableAssert` -* [Remove unused imports](../../../java/removeunusedimports) * [Change type](../../../java/changetype) * oldFullyQualifiedTypeName: `com.google.common.truth.Truth` * newFullyQualifiedTypeName: `org.assertj.core.api.Assertions` @@ -366,7 +365,6 @@ recipeList: - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: com.google.common.truth.ThrowableSubject newFullyQualifiedTypeName: org.assertj.core.api.AbstractThrowableAssert - - org.openrewrite.java.RemoveUnusedImports - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: com.google.common.truth.Truth newFullyQualifiedTypeName: org.assertj.core.api.Assertions diff --git a/docs/recipes/javascript/README.md b/docs/recipes/javascript/README.md index 29aa70d40a..6eb5615ecf 100644 --- a/docs/recipes/javascript/README.md +++ b/docs/recipes/javascript/README.md @@ -2,6 +2,8 @@ ## Categories +* [Cleanup](/recipes/javascript/cleanup) +* [Dependencies](/recipes/javascript/dependencies) * [Migrate](/recipes/javascript/migrate) diff --git a/docs/recipes/javascript/cleanup/README.md b/docs/recipes/javascript/cleanup/README.md new file mode 100644 index 0000000000..16c151b02e --- /dev/null +++ b/docs/recipes/javascript/cleanup/README.md @@ -0,0 +1,7 @@ +# Cleanup + +## Recipes + +* [Use object property shorthand](./use-object-property-shorthand.md) + + diff --git a/docs/recipes/javascript/cleanup/use-object-property-shorthand.md b/docs/recipes/javascript/cleanup/use-object-property-shorthand.md new file mode 100644 index 0000000000..e04c935055 --- /dev/null +++ b/docs/recipes/javascript/cleanup/use-object-property-shorthand.md @@ -0,0 +1,38 @@ +--- +sidebar_label: "Use object property shorthand" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Use object property shorthand + +**org.openrewrite.javascript.cleanup.use-object-property-shorthand** + +_Simplifies object properties where the property name and value/variable name are the same (e.g., `{ x: x }` becomes `{ x }`). Applies to both destructuring patterns and object literals._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.javascript.cleanup.use-object-property-shorthand), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.javascript.cleanup.use-object-property-shorthand +``` diff --git a/docs/recipes/javascript/dependencies/README.md b/docs/recipes/javascript/dependencies/README.md new file mode 100644 index 0000000000..c80cbf8f40 --- /dev/null +++ b/docs/recipes/javascript/dependencies/README.md @@ -0,0 +1,8 @@ +# Dependencies + +## Recipes + +* [Find Node.js dependency](./find-dependency.md) +* [Upgrade npm dependency version](./upgrade-dependency-version.md) + + diff --git a/docs/recipes/javascript/dependencies/find-dependency.md b/docs/recipes/javascript/dependencies/find-dependency.md new file mode 100644 index 0000000000..b01199ae10 --- /dev/null +++ b/docs/recipes/javascript/dependencies/find-dependency.md @@ -0,0 +1,46 @@ +--- +sidebar_label: "Find Node.js dependency" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Find Node.js dependency + +**org.openrewrite.javascript.dependencies.find-dependency** + +_Finds dependencies in a project's `package.json`. Can find both direct dependencies and dependencies that transitively include the target package. This recipe is commonly used as a precondition for other recipes._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.javascript.dependencies.find-dependency), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + +## Options + +| Type | Name | Description | Example | +| --- | --- | --- | --- | +| `null` | packageName | The name of the npm package to find. Supports glob patterns. | `lodash` | +| `null` | version | *Optional*. An exact version number or semver selector used to select the version number. Leave empty to match any version. | `^18.0.0` | +| `null` | onlyDirect | *Optional*. If true (default), only matches dependencies that directly match the package name. If false, also marks direct dependencies that have the target package as a transitive dependency. | `true` | + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.javascript.dependencies.find-dependency +``` diff --git a/docs/recipes/javascript/dependencies/upgrade-dependency-version.md b/docs/recipes/javascript/dependencies/upgrade-dependency-version.md new file mode 100644 index 0000000000..c84a3a6200 --- /dev/null +++ b/docs/recipes/javascript/dependencies/upgrade-dependency-version.md @@ -0,0 +1,45 @@ +--- +sidebar_label: "Upgrade npm dependency version" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Upgrade npm dependency version + +**org.openrewrite.javascript.dependencies.upgrade-dependency-version** + +_Upgrades the version of a dependency in `package.json` and updates the lock file by running the package manager._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.javascript.dependencies.upgrade-dependency-version), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + +## Options + +| Type | Name | Description | Example | +| --- | --- | --- | --- | +| `null` | packageName | The name of the npm package to upgrade (e.g., 'lodash', '@types/node') | `lodash` | +| `null` | newVersion | The new version constraint to set (e.g., '^5.0.0', '~2.1.0', '3.0.0') | `^5.0.0` | + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.javascript.dependencies.upgrade-dependency-version +``` diff --git a/docs/recipes/maven/changepluginexecutions.md b/docs/recipes/maven/changepluginexecutions.md index a1d56cd356..d04d0eef3a 100644 --- a/docs/recipes/maven/changepluginexecutions.md +++ b/docs/recipes/maven/changepluginexecutions.md @@ -27,6 +27,13 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | `String` | artifactId | The second part of a dependency coordinate 'org.openrewrite.maven:rewrite-maven-plugin:VERSION'. | `rewrite-maven-plugin` | | `String` | executions | *Optional*. Plugin goal executions provided as raw XML. Supplying `null` will remove any existing executions. | `validatedryRun` | + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Add Quarkus Maven plugin](/recipes/quarkus/spring/addquarkusmavenplugin.md) + ## Example ###### Parameters diff --git a/docs/recipes/maven/excludedependency.md b/docs/recipes/maven/excludedependency.md index 921208012e..1a15b06059 100644 --- a/docs/recipes/maven/excludedependency.md +++ b/docs/recipes/maven/excludedependency.md @@ -33,7 +33,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: * [Combined dependency management to remove and exclude](/recipes/java/dropwizard/config/removeandexcludedependency.md) -* [Exclude JUnit 4, unless Spring Boot Testcontainers is used](/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md) +* [Exclude JUnit 4, unless Testcontainers is used](/recipes/java/testing/junit5/excludejunit4unlessusingtestcontainers.md) * [JUnit Jupiter migration from JUnit 4.x](/recipes/java/testing/junit5/junit4to5migration.md) * [Lombok Best Practices](/recipes/java/migrate/lombok/lombokbestpractices.md) * [Migrate from JMockit to Mockito](/recipes/java/testing/jmockit/jmockittomockito.md) diff --git a/docs/recipes/maven/search/doesnotincludedependency.md b/docs/recipes/maven/search/doesnotincludedependency.md index b2eeb1405e..03036f4a37 100644 --- a/docs/recipes/maven/search/doesnotincludedependency.md +++ b/docs/recipes/maven/search/doesnotincludedependency.md @@ -25,6 +25,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac | --- | --- | --- | --- | | `String` | groupId | The first part of a dependency coordinate `com.google.guava:guava:VERSION`. Supports glob. | `com.google.guava` | | `String` | artifactId | The second part of a dependency coordinate `com.google.guava:guava:VERSION`. Supports glob. | `guava` | +| `String` | version | *Optional*. Match only dependencies with the specified version. Node-style [version selectors](https://docs.openrewrite.org/reference/dependency-version-selectors) may be used. All versions are searched by default. | `1.x` | | `Boolean` | onlyDirect | *Optional*. Default false. If enabled, transitive dependencies will not be considered. | `true` | | `String` | scope | *Optional*. Default any. If specified, only the requested scope's classpaths will be checked. Valid options: `compile`, `test`, `runtime`, `provided` | `compile` | @@ -42,6 +43,7 @@ recipeList: - org.openrewrite.maven.search.DoesNotIncludeDependency: groupId: com.google.guava artifactId: guava + version: 1.x onlyDirect: true scope: compile ``` @@ -79,7 +81,7 @@ Now that `com.yourorg.DoesNotIncludeDependencyExample` has been defined, activat You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe DoesNotIncludeDependency --recipe-option "groupId=com.google.guava" --recipe-option "artifactId=guava" --recipe-option "onlyDirect=true" --recipe-option "scope=compile" +mod run . --recipe DoesNotIncludeDependency --recipe-option "groupId=com.google.guava" --recipe-option "artifactId=guava" --recipe-option "version=1.x" --recipe-option "onlyDirect=true" --recipe-option "scope=compile" ``` If the recipe is not available locally, then you can install it using: diff --git a/docs/recipes/maven/upgradeparentversion.md b/docs/recipes/maven/upgradeparentversion.md index 611305b624..50ecaecd6f 100644 --- a/docs/recipes/maven/upgradeparentversion.md +++ b/docs/recipes/maven/upgradeparentversion.md @@ -51,14 +51,14 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Boot 3.4 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-community-edition.md) * [Migrate to Spring Boot 3.5 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md) * [Migrate to Spring Boot 3.5 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-moderne-edition.md) -* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Spring Boot 4.0 (Community Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md) * [Migrate to WebLogic 14.1.1](/recipes/com/oracle/weblogic/rewrite/upgradeto1411.md) * [Update the WebLogic version to 14.1.2](/recipes/com/oracle/weblogic/rewrite/updatebuildtoweblogic1412.md) * [Update the WebLogic version to 15.1.1](/recipes/com/oracle/weblogic/rewrite/updatebuildtoweblogic1511.md) * [Upgrade Apache Maven Parent](/recipes/devcenter/upgrademavenparent.md) -* [Upgrade Apache Maven Parent](/recipes/devcenter/upgrademavenpluginsparent.md) -* [Upgrade Apache Maven Parent](/recipes/devcenter/upgrademavensharedparent.md) * [Upgrade Apache Parent POM](/recipes/devcenter/upgradeapacheparent.md) +* [Upgrade Maven Plugins Parent](/recipes/devcenter/upgrademavenpluginsparent.md) +* [Upgrade Maven Shared Parent](/recipes/devcenter/upgrademavensharedparent.md) * [Upgrade Quarkus Universe BOM](/recipes/devcenter/upgradequarkusuniversebom.md) * [Upgrade dependencies to Spring Cloud 2022](/recipes/java/spring/cloud2022/dependencyupgrades.md) * [Upgrade dependencies to Spring Cloud 2023](/recipes/java/spring/cloud2023/dependencyupgrades.md) diff --git a/docs/recipes/maven/upgradepluginversion.md b/docs/recipes/maven/upgradepluginversion.md index 61b45caaae..160cc6b1f7 100644 --- a/docs/recipes/maven/upgradepluginversion.md +++ b/docs/recipes/maven/upgradepluginversion.md @@ -58,7 +58,7 @@ This recipe is used as part of the following composite recipes: * [Migrate to Spring Boot 3.4 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-community-edition.md) * [Migrate to Spring Boot 3.5 (Community Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-community-edition.md) * [Migrate to Spring Boot 3.5 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-moderne-edition.md) -* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) +* [Migrate to Spring Boot 4.0 (Community Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition.md) * [Migrate to WebLogic 14.1.1](/recipes/com/oracle/weblogic/rewrite/upgradeto1411.md) * [Quarkus 2.x migration from Quarkus 1.x](/recipes/quarkus/quarkus2/quarkus1to2migration.md) * [Update Plugins for Jakarta EE 10](/recipes/java/migrate/jakarta/migratepluginsforjakarta10.md) diff --git a/docs/recipes/node/migrate/README.md b/docs/recipes/node/migrate/README.md index e9b2ac9ae6..2019759218 100644 --- a/docs/recipes/node/migrate/README.md +++ b/docs/recipes/node/migrate/README.md @@ -4,7 +4,17 @@ * [Buffer](/recipes/node/migrate/buffer) * [Crypto](/recipes/node/migrate/crypto) +* [Fs](/recipes/node/migrate/fs) +* [Http](/recipes/node/migrate/http) * [Process](/recipes/node/migrate/process) * [Util](/recipes/node/migrate/util) +* [Zlib](/recipes/node/migrate/zlib) + +## Composite Recipes + +_Recipes that include further recipes, often including the individual recipes below._ + +* [Upgrade to Node.js 22](./upgrade-node-22.md) +* [Upgrade to Node.js 24](./upgrade-node-24.md) diff --git a/docs/recipes/node/migrate/buffer/README.md b/docs/recipes/node/migrate/buffer/README.md index b4177f6c17..6f2efcb5d3 100644 --- a/docs/recipes/node/migrate/buffer/README.md +++ b/docs/recipes/node/migrate/buffer/README.md @@ -3,5 +3,6 @@ ## Recipes * [Replace deprecated `Buffer.slice()` with `Buffer.subarray()`](./replace-deprecated-slice.md) +* [Replace deprecated `SlowBuffer` with `Buffer.allocUnsafeSlow()`](./replace-slow-buffer.md) diff --git a/docs/recipes/node/migrate/buffer/replace-deprecated-slice.md b/docs/recipes/node/migrate/buffer/replace-deprecated-slice.md index 5681c53074..ca17d0d57b 100644 --- a/docs/recipes/node/migrate/buffer/replace-deprecated-slice.md +++ b/docs/recipes/node/migrate/buffer/replace-deprecated-slice.md @@ -24,6 +24,13 @@ _Replace deprecated `buffer.slice()` calls with `buffer.subarray()` for compatib 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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + ## Usage In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). diff --git a/docs/recipes/node/migrate/buffer/replace-slow-buffer.md b/docs/recipes/node/migrate/buffer/replace-slow-buffer.md new file mode 100644 index 0000000000..859eb1a076 --- /dev/null +++ b/docs/recipes/node/migrate/buffer/replace-slow-buffer.md @@ -0,0 +1,42 @@ +--- +sidebar_label: "Replace deprecated `SlowBuffer` with `Buffer.allocUnsafeSlow()`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `SlowBuffer` with `Buffer.allocUnsafeSlow()` + +**org.openrewrite.node.migrate.buffer.replace-slow-buffer** + +_Replace deprecated `new SlowBuffer(size)` calls with `Buffer.allocUnsafeSlow(size)`. SlowBuffer was used to create un-pooled Buffer instances, but has been removed in favor of the explicit Buffer.allocUnsafeSlow() method._ + +### Tags + +* [DEP0030](/reference/recipes-by-tag#dep0030) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.buffer.replace-slow-buffer), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.buffer.replace-slow-buffer +``` diff --git a/docs/recipes/node/migrate/crypto/README.md b/docs/recipes/node/migrate/crypto/README.md index 98d7a908c0..4703a9faf6 100644 --- a/docs/recipes/node/migrate/crypto/README.md +++ b/docs/recipes/node/migrate/crypto/README.md @@ -2,6 +2,7 @@ ## Recipes +* [Replace deprecated `crypto.fips` with `crypto.getFips()` and `crypto.setFips()`](./replace-crypto-fips.md) * [Replace deprecated `new crypto.Hash()` and `new crypto.Hmac()` with factory methods](./replace-hash-constructor.md) diff --git a/docs/recipes/node/migrate/crypto/replace-crypto-fips.md b/docs/recipes/node/migrate/crypto/replace-crypto-fips.md new file mode 100644 index 0000000000..685ae15e96 --- /dev/null +++ b/docs/recipes/node/migrate/crypto/replace-crypto-fips.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Replace deprecated `crypto.fips` with `crypto.getFips()` and `crypto.setFips()`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `crypto.fips` with `crypto.getFips()` and `crypto.setFips()` + +**org.openrewrite.node.migrate.crypto.replace-crypto-fips** + +_Replace deprecated `crypto.fips` property access with `crypto.getFips()` for reads and `crypto.setFips(value)` for writes._ + +### Tags + +* [DEP0093](/reference/recipes-by-tag#dep0093) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.crypto.replace-crypto-fips), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.crypto.replace-crypto-fips +``` diff --git a/docs/recipes/node/migrate/crypto/replace-hash-constructor.md b/docs/recipes/node/migrate/crypto/replace-hash-constructor.md index 1fa75c510b..76718870e7 100644 --- a/docs/recipes/node/migrate/crypto/replace-hash-constructor.md +++ b/docs/recipes/node/migrate/crypto/replace-hash-constructor.md @@ -25,6 +25,13 @@ _Replace deprecated `new crypto.Hash(algorithm)` constructor calls with `crypto. 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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + ## Usage In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). diff --git a/docs/recipes/node/migrate/fs/README.md b/docs/recipes/node/migrate/fs/README.md new file mode 100644 index 0000000000..3c69d24372 --- /dev/null +++ b/docs/recipes/node/migrate/fs/README.md @@ -0,0 +1,10 @@ +# Fs + +## Recipes + +* [Replace deprecated `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` with `fs.constants.*`](./replace-fs-access-constants.md) +* [Replace deprecated `fs.Stats` constructor with object literal](./replace-stats-constructor.md) +* [Replace `dirent.path` with `dirent.parentPath`](./replace-dirent-path.md) +* [Replace `fs.truncate()` with file descriptor to `fs.ftruncate()`](./replace-fs-truncate-fd.md) + + diff --git a/docs/recipes/node/migrate/fs/replace-dirent-path.md b/docs/recipes/node/migrate/fs/replace-dirent-path.md new file mode 100644 index 0000000000..daac72f346 --- /dev/null +++ b/docs/recipes/node/migrate/fs/replace-dirent-path.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Replace `dirent.path` with `dirent.parentPath`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace `dirent.path` with `dirent.parentPath` + +**org.openrewrite.node.migrate.fs.replace-dirent-path** + +_Replaces deprecated `dirent.path` property access with `dirent.parentPath` on `fs.Dirent` instances to address DEP0178 deprecation._ + +### Tags + +* [DEP0178](/reference/recipes-by-tag#dep0178) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.fs.replace-dirent-path), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.fs.replace-dirent-path +``` diff --git a/docs/recipes/node/migrate/fs/replace-fs-access-constants.md b/docs/recipes/node/migrate/fs/replace-fs-access-constants.md new file mode 100644 index 0000000000..0cd0ac564b --- /dev/null +++ b/docs/recipes/node/migrate/fs/replace-fs-access-constants.md @@ -0,0 +1,42 @@ +--- +sidebar_label: "Replace deprecated `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` with `fs.constants.*`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` with `fs.constants.*` + +**org.openrewrite.node.migrate.fs.replace-fs-access-constants** + +_Replace deprecated file access constants (`fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK`) with their equivalents from `fs.constants`. These constants were removed in Node.js v24+ and should be accessed through the constants namespace._ + +### Tags + +* [DEP0176](/reference/recipes-by-tag#dep0176) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.fs.replace-fs-access-constants), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.fs.replace-fs-access-constants +``` diff --git a/docs/recipes/node/migrate/fs/replace-fs-truncate-fd.md b/docs/recipes/node/migrate/fs/replace-fs-truncate-fd.md new file mode 100644 index 0000000000..dc8ab9a2b3 --- /dev/null +++ b/docs/recipes/node/migrate/fs/replace-fs-truncate-fd.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Replace `fs.truncate()` with file descriptor to `fs.ftruncate()`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace `fs.truncate()` with file descriptor to `fs.ftruncate()` + +**org.openrewrite.node.migrate.fs.replace-fs-truncate-fd** + +_Replace deprecated `fs.truncate(fd, ...)` and `fs.truncateSync(fd, ...)` calls with `fs.ftruncate(fd, ...)` and `fs.ftruncateSync(fd, ...)` when the first argument is a file descriptor (number)._ + +### Tags + +* [DEP0081](/reference/recipes-by-tag#dep0081) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.fs.replace-fs-truncate-fd), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.fs.replace-fs-truncate-fd +``` diff --git a/docs/recipes/node/migrate/fs/replace-stats-constructor.md b/docs/recipes/node/migrate/fs/replace-stats-constructor.md new file mode 100644 index 0000000000..667feb5e35 --- /dev/null +++ b/docs/recipes/node/migrate/fs/replace-stats-constructor.md @@ -0,0 +1,42 @@ +--- +sidebar_label: "Replace deprecated `fs.Stats` constructor with object literal" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `fs.Stats` constructor with object literal + +**org.openrewrite.node.migrate.fs.replace-stats-constructor** + +_Replace deprecated `new fs.Stats()` constructor calls with an object literal containing Stats properties initialized to undefined._ + +### Tags + +* [DEP0180](/reference/recipes-by-tag#dep0180) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.fs.replace-stats-constructor), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +This recipe is available under the [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license). + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.fs.replace-stats-constructor +``` diff --git a/docs/recipes/node/migrate/http/README.md b/docs/recipes/node/migrate/http/README.md new file mode 100644 index 0000000000..1b67eb6c01 --- /dev/null +++ b/docs/recipes/node/migrate/http/README.md @@ -0,0 +1,7 @@ +# Http + +## Recipes + +* [Replace `OutgoingMessage._headers` and `._headerNames` with public methods](./replace-outgoing-message-headers.md) + + diff --git a/docs/recipes/node/migrate/http/replace-outgoing-message-headers.md b/docs/recipes/node/migrate/http/replace-outgoing-message-headers.md new file mode 100644 index 0000000000..965ea3a64f --- /dev/null +++ b/docs/recipes/node/migrate/http/replace-outgoing-message-headers.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Replace `OutgoingMessage._headers` and `._headerNames` with public methods" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace `OutgoingMessage._headers` and `._headerNames` with public methods + +**org.openrewrite.node.migrate.http.replace-outgoing-message-headers** + +_Replace deprecated `OutgoingMessage.prototype._headers` with `getHeaders()`, `setHeader()`, `removeHeader()` and `OutgoingMessage.prototype._headerNames` with `getHeaderNames()` to address DEP0066 deprecation._ + +### Tags + +* [DEP0066](/reference/recipes-by-tag#dep0066) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.http.replace-outgoing-message-headers), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.http.replace-outgoing-message-headers +``` diff --git a/docs/recipes/node/migrate/process/README.md b/docs/recipes/node/migrate/process/README.md index 70b8ee12da..9ecb3062d3 100644 --- a/docs/recipes/node/migrate/process/README.md +++ b/docs/recipes/node/migrate/process/README.md @@ -2,6 +2,7 @@ ## Recipes +* [Coerce `process.exit()` and `process.exitCode` to integer](./coerce-process-exit-code.md) * [Remove usage of deprecated `process.features.tls_*` properties](./remove-usage-of-features-tls-underscore_constants.md) diff --git a/docs/recipes/node/migrate/process/coerce-process-exit-code.md b/docs/recipes/node/migrate/process/coerce-process-exit-code.md new file mode 100644 index 0000000000..794f8a4f5f --- /dev/null +++ b/docs/recipes/node/migrate/process/coerce-process-exit-code.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Coerce `process.exit()` and `process.exitCode` to integer" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Coerce `process.exit()` and `process.exitCode` to integer + +**org.openrewrite.node.migrate.process.coerce-process-exit-code** + +_Wraps non-integer values passed to `process.exit()` or assigned to `process.exitCode` with `Math.trunc()` to avoid the DEP0164 deprecation warning about implicit coercion to integer._ + +### Tags + +* [DEP0164](/reference/recipes-by-tag#dep0164) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.process.coerce-process-exit-code), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.process.coerce-process-exit-code +``` diff --git a/docs/recipes/node/migrate/process/remove-usage-of-features-tls-underscore_constants.md b/docs/recipes/node/migrate/process/remove-usage-of-features-tls-underscore_constants.md index 58f88dbf01..70cf56a342 100644 --- a/docs/recipes/node/migrate/process/remove-usage-of-features-tls-underscore_constants.md +++ b/docs/recipes/node/migrate/process/remove-usage-of-features-tls-underscore_constants.md @@ -24,6 +24,13 @@ _Remove references to deprecated `process.features.tls_*` properties, replace wi 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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + ## Usage In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). diff --git a/docs/recipes/node/migrate/upgrade-node-22.md b/docs/recipes/node/migrate/upgrade-node-22.md new file mode 100644 index 0000000000..8ac650b1d0 --- /dev/null +++ b/docs/recipes/node/migrate/upgrade-node-22.md @@ -0,0 +1,87 @@ +--- +sidebar_label: "Upgrade to Node.js 22" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Upgrade to Node.js 22 + +**org.openrewrite.node.migrate.upgrade-node-22** + +_Migrate deprecated APIs for Node.js 22 compatibility. Addresses Node 22 runtime deprecations and deprecations from earlier versions._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.upgrade-node-22), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +:::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 deprecated `util.types.isWebAssemblyCompiledModule()`](../../node/migrate/util/replace-is-webassembly-compiled-module) +* [Replace deprecated `util.isX()` methods with native JavaScript](../../node/migrate/util/use-native-type-checking-methods) +* [Replace deprecated `util._extend()` with `Object.assign()`](../../node/migrate/util/replace-util-extend) +* [Replace deprecated `new crypto.Hash()` and `new crypto.Hmac()` with factory methods](../../node/migrate/crypto/replace-hash-constructor) +* [Coerce `process.exit()` and `process.exitCode` to integer](../../node/migrate/process/coerce-process-exit-code) +* [Replace deprecated `Buffer.slice()` with `Buffer.subarray()`](../../node/migrate/buffer/replace-deprecated-slice) +* [Remove usage of deprecated `process.features.tls_*` properties](../../node/migrate/process/remove-usage-of-features-tls-underscore_constants) +* [Remove unnecessary `util.promisify()` on Promise-returning functions](../../node/migrate/util/remove-promisify-on-promise) + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.node.migrate.upgrade-node-22 +displayName: Upgrade to Node.js 22 +description: | + Migrate deprecated APIs for Node.js 22 compatibility. Addresses Node 22 runtime deprecations and deprecations from earlier versions. +recipeList: + - org.openrewrite.node.migrate.util.replace-is-webassembly-compiled-module + - org.openrewrite.node.migrate.util.use-native-type-checking-methods + - org.openrewrite.node.migrate.util.replace-util-extend + - org.openrewrite.node.migrate.crypto.replace-hash-constructor + - org.openrewrite.node.migrate.process.coerce-process-exit-code + - org.openrewrite.node.migrate.buffer.replace-deprecated-slice + - org.openrewrite.node.migrate.process.remove-usage-of-features-tls-underscore_constants + - org.openrewrite.node.migrate.util.remove-promisify-on-promise + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Upgrade to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.upgrade-node-22 +``` diff --git a/docs/recipes/node/migrate/upgrade-node-24.md b/docs/recipes/node/migrate/upgrade-node-24.md new file mode 100644 index 0000000000..535b0f4816 --- /dev/null +++ b/docs/recipes/node/migrate/upgrade-node-24.md @@ -0,0 +1,78 @@ +--- +sidebar_label: "Upgrade to Node.js 24" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Upgrade to Node.js 24 + +**org.openrewrite.node.migrate.upgrade-node-24** + +_Migrate deprecated APIs for Node.js 24 compatibility. Includes all migrations from Node.js 22, plus Node 23 and Node 24 deprecations._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.upgrade-node-24), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +:::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 + + + +* [Upgrade to Node.js 22](../../node/migrate/upgrade-node-22) +* [Replace deprecated `util.log()` with `console.log()`](../../node/migrate/util/replace-util-log) +* [Replace deprecated `zlib.bytesRead` with `zlib.bytesWritten`](../../node/migrate/zlib/replace-bytes-read) +* [Replace `OutgoingMessage._headers` and `._headerNames` with public methods](../../node/migrate/http/replace-outgoing-message-headers) +* [Replace `fs.truncate()` with file descriptor to `fs.ftruncate()`](../../node/migrate/fs/replace-fs-truncate-fd) +* [Replace `dirent.path` with `dirent.parentPath`](../../node/migrate/fs/replace-dirent-path) +* [Replace deprecated `crypto.fips` with `crypto.getFips()` and `crypto.setFips()`](../../node/migrate/crypto/replace-crypto-fips) + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.node.migrate.upgrade-node-24 +displayName: Upgrade to Node.js 24 +description: | + Migrate deprecated APIs for Node.js 24 compatibility. Includes all migrations from Node.js 22, plus Node 23 and Node 24 deprecations. +recipeList: + - org.openrewrite.node.migrate.upgrade-node-22 + - org.openrewrite.node.migrate.util.replace-util-log + - org.openrewrite.node.migrate.zlib.replace-bytes-read + - org.openrewrite.node.migrate.http.replace-outgoing-message-headers + - org.openrewrite.node.migrate.fs.replace-fs-truncate-fd + - org.openrewrite.node.migrate.fs.replace-dirent-path + - org.openrewrite.node.migrate.crypto.replace-crypto-fips + +``` + + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.upgrade-node-24 +``` diff --git a/docs/recipes/node/migrate/util/README.md b/docs/recipes/node/migrate/util/README.md index a04835ce9e..3d182f9fc8 100644 --- a/docs/recipes/node/migrate/util/README.md +++ b/docs/recipes/node/migrate/util/README.md @@ -2,8 +2,10 @@ ## Recipes +* [Remove unnecessary `util.promisify()` on Promise-returning functions](./remove-promisify-on-promise.md) * [Replace deprecated `util._extend()` with `Object.assign()`](./replace-util-extend.md) * [Replace deprecated `util.isX()` methods with native JavaScript](./use-native-type-checking-methods.md) * [Replace deprecated `util.log()` with `console.log()`](./replace-util-log.md) +* [Replace deprecated `util.types.isWebAssemblyCompiledModule()`](./replace-is-webassembly-compiled-module.md) diff --git a/docs/recipes/node/migrate/util/remove-promisify-on-promise.md b/docs/recipes/node/migrate/util/remove-promisify-on-promise.md new file mode 100644 index 0000000000..0ef1d4dbdc --- /dev/null +++ b/docs/recipes/node/migrate/util/remove-promisify-on-promise.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Remove unnecessary `util.promisify()` on Promise-returning functions" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Remove unnecessary `util.promisify()` on Promise-returning functions + +**org.openrewrite.node.migrate.util.remove-promisify-on-promise** + +_Removes `util.promisify()` calls on functions that already return a Promise. Since Node.js v17.0.0, calling promisify on a function that returns a Promise emits a runtime deprecation warning (DEP0174)._ + +### Tags + +* [DEP0174](/reference/recipes-by-tag#dep0174) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.util.remove-promisify-on-promise), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.util.remove-promisify-on-promise +``` diff --git a/docs/recipes/node/migrate/util/replace-is-webassembly-compiled-module.md b/docs/recipes/node/migrate/util/replace-is-webassembly-compiled-module.md new file mode 100644 index 0000000000..e09c8d9b83 --- /dev/null +++ b/docs/recipes/node/migrate/util/replace-is-webassembly-compiled-module.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Replace deprecated `util.types.isWebAssemblyCompiledModule()`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `util.types.isWebAssemblyCompiledModule()` + +**org.openrewrite.node.migrate.util.replace-is-webassembly-compiled-module** + +_Replace `util.types.isWebAssemblyCompiledModule(value)` with `value instanceof WebAssembly.Module`._ + +### Tags + +* [DEP0177](/reference/recipes-by-tag#dep0177) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.util.replace-is-webassembly-compiled-module), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.util.replace-is-webassembly-compiled-module +``` diff --git a/docs/recipes/node/migrate/util/replace-util-extend.md b/docs/recipes/node/migrate/util/replace-util-extend.md index 96287b5f45..5846a42cd1 100644 --- a/docs/recipes/node/migrate/util/replace-util-extend.md +++ b/docs/recipes/node/migrate/util/replace-util-extend.md @@ -24,6 +24,13 @@ _Replace deprecated `util._extend(target, source)` calls with `Object.assign(tar 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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + ## Usage In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). diff --git a/docs/recipes/node/migrate/util/replace-util-log.md b/docs/recipes/node/migrate/util/replace-util-log.md index 91eb33c785..5870eb76c3 100644 --- a/docs/recipes/node/migrate/util/replace-util-log.md +++ b/docs/recipes/node/migrate/util/replace-util-log.md @@ -24,6 +24,13 @@ _Replace deprecated `util.log()` calls with `console.log()`. Note: `util.log()` 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 to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + ## Usage In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). diff --git a/docs/recipes/node/migrate/util/use-native-type-checking-methods.md b/docs/recipes/node/migrate/util/use-native-type-checking-methods.md index 09058a7759..82ca51b60f 100644 --- a/docs/recipes/node/migrate/util/use-native-type-checking-methods.md +++ b/docs/recipes/node/migrate/util/use-native-type-checking-methods.md @@ -38,6 +38,13 @@ _The `util` module's type-checking methods have been removed in Node 22._ 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 to Node.js 22](/recipes/node/migrate/upgrade-node-22.md) + + ## Usage In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). diff --git a/docs/recipes/node/migrate/zlib/README.md b/docs/recipes/node/migrate/zlib/README.md new file mode 100644 index 0000000000..76af8029f1 --- /dev/null +++ b/docs/recipes/node/migrate/zlib/README.md @@ -0,0 +1,7 @@ +# Zlib + +## Recipes + +* [Replace deprecated `zlib.bytesRead` with `zlib.bytesWritten`](./replace-bytes-read.md) + + diff --git a/docs/recipes/node/migrate/zlib/replace-bytes-read.md b/docs/recipes/node/migrate/zlib/replace-bytes-read.md new file mode 100644 index 0000000000..2d26661b35 --- /dev/null +++ b/docs/recipes/node/migrate/zlib/replace-bytes-read.md @@ -0,0 +1,49 @@ +--- +sidebar_label: "Replace deprecated `zlib.bytesRead` with `zlib.bytesWritten`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Replace deprecated `zlib.bytesRead` with `zlib.bytesWritten` + +**org.openrewrite.node.migrate.zlib.replace-bytes-read** + +_Replace deprecated `bytesRead` property on zlib streams with `bytesWritten`._ + +### Tags + +* [DEP0108](/reference/recipes-by-tag#dep0108) + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=repo:openrewrite/rewrite+org.openrewrite.node.migrate.zlib.replace-bytes-read), +[Issue Tracker](https://github.com/openrewrite/rewrite/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite/rewrite-javascript/) + +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 to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) + + +## Usage + +In order to run JavaScript recipes, you will need to use the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro). +For JavaScript specific configuration instructions, please see our [configuring JavaScript guide](https://docs.moderne.io/user-documentation/moderne-cli/how-to-guides/javascript). + +Once the CLI is installed, you can install this JavaScript recipe package by running the following command: + +```shell title="Install the recipe package" +mod config recipes npm install @openrewrite/rewrite +``` + +Then, you can run the recipe via: + +```shell title="Run the recipe" +mod run . --recipe org.openrewrite.node.migrate.zlib.replace-bytes-read +``` diff --git a/docs/recipes/openapi/swagger/swaggertoopenapi.md b/docs/recipes/openapi/swagger/swaggertoopenapi.md index 3c90e07466..69bab18705 100644 --- a/docs/recipes/openapi/swagger/swaggertoopenapi.md +++ b/docs/recipes/openapi/swagger/swaggertoopenapi.md @@ -97,6 +97,7 @@ recipeList: This recipe is used as part of the following composite recipes: * [Migrate from Swagger to SpringDoc and OpenAPI](/recipes/java/springdoc/swaggertospringdoc.md) +* [Upgrade to SpringDoc 2.1](/recipes/java/springdoc/upgradespringdoc_2.md) ## Examples ##### Example 1 diff --git a/docs/recipes/org/apache/camel/upgrade/README.md b/docs/recipes/org/apache/camel/upgrade/README.md index bb16e85522..3bc66e4833 100644 --- a/docs/recipes/org/apache/camel/upgrade/README.md +++ b/docs/recipes/org/apache/camel/upgrade/README.md @@ -11,6 +11,7 @@ * [Camel413](/recipes/org/apache/camel/upgrade/camel413) * [Camel414](/recipes/org/apache/camel/upgrade/camel414) * [Camel415](/recipes/org/apache/camel/upgrade/camel415) +* [Camel416](/recipes/org/apache/camel/upgrade/camel416) * [Camel42](/recipes/org/apache/camel/upgrade/camel42) * [Camel43](/recipes/org/apache/camel/upgrade/camel43) * [Camel44](/recipes/org/apache/camel/upgrade/camel44) diff --git a/docs/recipes/org/apache/camel/upgrade/camel416/README.md b/docs/recipes/org/apache/camel/upgrade/camel416/README.md new file mode 100644 index 0000000000..d56e6c538e --- /dev/null +++ b/docs/recipes/org/apache/camel/upgrade/camel416/README.md @@ -0,0 +1,14 @@ +# Camel416 + +## Composite Recipes + +_Recipes that include further recipes, often including the individual recipes below._ + +* [Migrates `camel 4.15` application to `camel 4.16`](./camelmigrationrecipe.md) + +## Recipes + +* [Different java type for ServerCertificateValidator in camel-milo](./camelmilocertificate.md) +* [Milo: The monitored item data value listener API has changed](./camel416milolambdarecipe.md) + + diff --git a/docs/recipes/org/apache/camel/upgrade/camel416/camel416milolambdarecipe.md b/docs/recipes/org/apache/camel/upgrade/camel416/camel416milolambdarecipe.md new file mode 100644 index 0000000000..6d3c3fdb7a --- /dev/null +++ b/docs/recipes/org/apache/camel/upgrade/camel416/camel416milolambdarecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Milo: The monitored item data value listener API has changed" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Milo: The monitored item data value listener API has changed + +**org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe** + +_Milo: The monitored item data value listener API has changed._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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 `camel 4.15` application to `camel 4.16`](/recipes/org/apache/camel/upgrade/camel416/camelmigrationrecipe.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Camel416MiloLambdaRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/org/apache/camel/upgrade/camel416/camelmigrationrecipe.md b/docs/recipes/org/apache/camel/upgrade/camel416/camelmigrationrecipe.md new file mode 100644 index 0000000000..bfd19af6b1 --- /dev/null +++ b/docs/recipes/org/apache/camel/upgrade/camel416/camelmigrationrecipe.md @@ -0,0 +1,247 @@ +--- +sidebar_label: "Migrates `camel 4.15` application to `camel 4.16`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrates `camel 4.15` application to `camel 4.16` + +**org.apache.camel.upgrade.camel416.CamelMigrationRecipe** + +_Migrates `camel 4.15` application to `camel 4.16`._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=org.apache.camel.upgrade.camel416.CamelMigrationRecipe), +[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 + + + +* [Milo: The monitored item data value listener API has changed](../../../../../org/apache/camel/upgrade/camel416/camel416milolambdarecipe) +* [Different java type for ServerCertificateValidator in camel-milo](../../../../../org/apache/camel/upgrade/camel416/camelmilocertificate) + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.apache.camel.upgrade.camel416.CamelMigrationRecipe +displayName: Migrates `camel 4.15` application to `camel 4.16` +description: | + Migrates `camel 4.15` application to `camel 4.16`. +recipeList: + - org.apache.camel.upgrade.camel416.Camel416MiloLambdaRecipe + - org.apache.camel.upgrade.camel416.camelMiloCertificate + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrate to 4.14.0](/recipes/org/apache/camel/upgrade/camelmigrationrecipe.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.apache.camel.upgrade.camel416.CamelMigrationRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("org.apache.camel.upgrade.camel416.CamelMigrationRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.apache.camel.upgrade.camel416.CamelMigrationRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=org.apache.camel.upgrade.camel416.CamelMigrationRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CamelMigrationRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/org/apache/camel/upgrade/camel416/camelmilocertificate.md b/docs/recipes/org/apache/camel/upgrade/camel416/camelmilocertificate.md new file mode 100644 index 0000000000..497cfa34fc --- /dev/null +++ b/docs/recipes/org/apache/camel/upgrade/camel416/camelmilocertificate.md @@ -0,0 +1,245 @@ +--- +sidebar_label: "Different java type for ServerCertificateValidator in camel-milo" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Different java type for ServerCertificateValidator in camel-milo + +**org.apache.camel.upgrade.camel416.camelMiloCertificate** + +_Different java type for ServerCertificateValidator in camel-milo._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=org.apache.camel.upgrade.camel416.camelMiloCertificate), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +This recipe is available under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + + +## Definition + + + +* [Change type](../../../../../java/changetype) + * oldFullyQualifiedTypeName: `org.eclipse.milo.opcua.stack.server.security.ServerCertificateValidator` + * newFullyQualifiedTypeName: `org.eclipse.milo.opcua.stack.core.security.CertificateValidator` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.apache.camel.upgrade.camel416.camelMiloCertificate +displayName: Different java type for ServerCertificateValidator in camel-milo +description: | + Different java type for ServerCertificateValidator in camel-milo. +recipeList: + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: org.eclipse.milo.opcua.stack.server.security.ServerCertificateValidator + newFullyQualifiedTypeName: org.eclipse.milo.opcua.stack.core.security.CertificateValidator + +``` + + + +## Used by + +This recipe is used as part of the following composite recipes: + +* [Migrates `camel 4.15` application to `camel 4.16`](/recipes/org/apache/camel/upgrade/camel416/camelmigrationrecipe.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("org.apache.camel.upgrade.camel416.camelMiloCertificate") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("org.apache.camel.upgrade.camel416.camelMiloCertificate") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + org.apache.camel.upgrade.camel416.camelMiloCertificate + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=org.apache.camel.upgrade.camel416.camelMiloCertificate -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe camelMiloCertificate +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/org/apache/camel/upgrade/camelmigrationrecipe.md b/docs/recipes/org/apache/camel/upgrade/camelmigrationrecipe.md index a5127dfc2c..a4df23b08c 100644 --- a/docs/recipes/org/apache/camel/upgrade/camelmigrationrecipe.md +++ b/docs/recipes/org/apache/camel/upgrade/camelmigrationrecipe.md @@ -28,6 +28,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac +* [Migrates `camel 4.15` application to `camel 4.16`](../../../../org/apache/camel/upgrade/camel416/camelmigrationrecipe) * [Migrates `camel 4.14` application to `camel 4.15`](../../../../org/apache/camel/upgrade/camel415/camelmigrationrecipe) * [Migrates `camel 4.13` application to `camel 4.14`](../../../../org/apache/camel/upgrade/camel414/camelmigrationrecipe) * [Migrates `camel 4.12` application to `camel 4.13`](../../../../org/apache/camel/upgrade/camel413/camelmigrationrecipe) @@ -68,6 +69,7 @@ displayName: Migrate to 4.14.0 description: | Migrates Apache Camel application to 4.14.0. recipeList: + - org.apache.camel.upgrade.camel416.CamelMigrationRecipe - org.apache.camel.upgrade.camel415.CamelMigrationRecipe - org.apache.camel.upgrade.camel414.CamelMigrationRecipe - org.apache.camel.upgrade.camel413.CamelMigrationRecipe diff --git a/docs/recipes/quarkus/spring/README.md b/docs/recipes/quarkus/spring/README.md index 2d28908741..941035e4e1 100644 --- a/docs/recipes/quarkus/spring/README.md +++ b/docs/recipes/quarkus/spring/README.md @@ -6,6 +6,7 @@ _Recipes to rewrite Spring to Quarkus._ _Recipes that include further recipes, often including the individual recipes below._ +* [Add Quarkus Maven plugin](./addquarkusmavenplugin.md) * [Add Spring compatibility extensions for commonly used annotations](./addspringcompatibilityextensions.md) * [Add or replace Spring Boot build plugin with Quarkus build plugin](./migratemavenplugin.md) * [Migrate `@EnableXyz` annotations to Quarkus extensions](./enableannotationstoquarkusdependencies.md) @@ -49,7 +50,6 @@ _Recipes that include further recipes, often including the individual recipes be ## Recipes -* [Add Quarkus Maven plugin](./addquarkusmavenplugin.md) * [Convert Spring `ResponseEntity` to JAX-RS `Response`](./responseentitytojaxrsresponse.md) * [Convert Spring Web annotations to JAX-RS](./webtojaxrs.md) * [Remove Spring Boot 3.x parent POM](./removespringbootparent.md) diff --git a/docs/recipes/quarkus/spring/addquarkusmavenplugin.md b/docs/recipes/quarkus/spring/addquarkusmavenplugin.md index b7a51e5d6a..cfaea68d34 100644 --- a/docs/recipes/quarkus/spring/addquarkusmavenplugin.md +++ b/docs/recipes/quarkus/spring/addquarkusmavenplugin.md @@ -17,15 +17,156 @@ _Adds the Quarkus Maven plugin using the same version as the quarkus-bom in depe [Issue Tracker](https://github.com/openrewrite/rewrite-spring-to-quarkus/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-spring-to-quarkus/) +:::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 + + + +* [Change Maven plugin executions](../../maven/changepluginexecutions) + * groupId: `io.quarkus.platform` + * artifactId: `quarkus-maven-plugin` + * executions: `buildgenerate-codegenerate-code-tests` +* [Add or update child tag](../../xml/addorupdatechildtag) + * parentXPath: `//plugin[artifactId='quarkus-maven-plugin']` + * newChildTag: `true` + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.quarkus.spring.AddQuarkusMavenPlugin +displayName: Add Quarkus Maven plugin +description: | + Adds the Quarkus Maven plugin using the same version as the quarkus-bom in dependency management. +recipeList: + - org.openrewrite.maven.ChangePluginExecutions: + groupId: io.quarkus.platform + artifactId: quarkus-maven-plugin + executions: buildgenerate-codegenerate-code-tests + - org.openrewrite.xml.AddOrUpdateChildTag: + parentXPath: //plugin[artifactId='quarkus-maven-plugin'] + newChildTag: true + +``` + + + ## Used by This recipe is used as part of the following composite recipes: * [Add or replace Spring Boot build plugin with Quarkus build plugin](/recipes/quarkus/spring/migratemavenplugin.md) +## Example + + + + + + +###### Before +```xml title="pom.xml" + + 4.0.0 + com.example + demo + 1.0.0 + + + + io.quarkus.platform + quarkus-bom + 3.17.0 + pom + import + + + + +``` + +###### After +```xml title="pom.xml" + + 4.0.0 + com.example + demo + 1.0.0 + + + + io.quarkus.platform + quarkus-bom + 3.17.0 + pom + import + + + + + + + io.quarkus.platform + quarkus-maven-plugin + 3.17.0 + + + + build + generate-code + generate-code-tests + + + + true + + + + +``` + + + + +```diff +--- pom.xml ++++ pom.xml +@@ -17,0 +17,19 @@ + + ++ ++ ++ ++ io.quarkus.platform ++ quarkus-maven-plugin ++ 3.17.0 ++ ++ ++ ++ build ++ generate-code ++ generate-code-tests ++ ++ ++ ++ true ++ ++ ++ + +``` + + + ## Usage diff --git a/docs/recipes/quarkus/spring/migratemavenplugin.md b/docs/recipes/quarkus/spring/migratemavenplugin.md index 18e20048ad..fc13662f9a 100644 --- a/docs/recipes/quarkus/spring/migratemavenplugin.md +++ b/docs/recipes/quarkus/spring/migratemavenplugin.md @@ -135,6 +135,16 @@ This recipe is used as part of the following composite recipes: io.quarkus.platform quarkus-maven-plugin 3.2.5.Final + + + + build + generate-code + generate-code-tests + + + + true @@ -147,7 +157,7 @@ This recipe is used as part of the following composite recipes: ```diff --- pom.xml +++ pom.xml -@@ -19,3 +19,3 @@ +@@ -19,3 +19,13 @@ - org.springframework.boot @@ -156,6 +166,16 @@ This recipe is used as part of the following composite recipes: + io.quarkus.platform + quarkus-maven-plugin + 3.2.5.Final ++ ++ ++ ++ build ++ generate-code ++ generate-code-tests ++ ++ ++ ++ true ``` @@ -223,6 +243,16 @@ This recipe is used as part of the following composite recipes: io.quarkus.platform quarkus-maven-plugin 3.2.5.Final + + + + build + generate-code + generate-code-tests + + + + true @@ -235,7 +265,7 @@ This recipe is used as part of the following composite recipes: ```diff --- pom.xml +++ pom.xml -@@ -19,3 +19,3 @@ +@@ -19,3 +19,13 @@ - org.springframework.boot @@ -244,6 +274,16 @@ This recipe is used as part of the following composite recipes: + io.quarkus.platform + quarkus-maven-plugin + 3.2.5.Final ++ ++ ++ ++ build ++ generate-code ++ generate-code-tests ++ ++ ++ ++ true ``` diff --git a/docs/recipes/software/amazon/awssdk/v2migration/adds3eventnotificationdependency.md b/docs/recipes/software/amazon/awssdk/v2migration/adds3eventnotificationdependency.md index 259ae3e728..8aa3dff172 100644 --- a/docs/recipes/software/amazon/awssdk/v2migration/adds3eventnotificationdependency.md +++ b/docs/recipes/software/amazon/awssdk/v2migration/adds3eventnotificationdependency.md @@ -32,7 +32,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.38.8` + * version: `2.40.0` * onlyIfUsing: `com.amazonaws.services.s3.event.S3EventNotification` @@ -53,7 +53,7 @@ recipeList: - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: s3-event-notifications - version: 2.38.8 + version: 2.40.0 onlyIfUsing: com.amazonaws.services.s3.event.S3EventNotification ``` diff --git a/docs/recipes/software/amazon/awssdk/v2migration/addtransfermanagerdependency.md b/docs/recipes/software/amazon/awssdk/v2migration/addtransfermanagerdependency.md index bbab172cce..5073c1a5d8 100644 --- a/docs/recipes/software/amazon/awssdk/v2migration/addtransfermanagerdependency.md +++ b/docs/recipes/software/amazon/awssdk/v2migration/addtransfermanagerdependency.md @@ -32,7 +32,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.38.8` + * version: `2.40.0` * onlyIfUsing: `com.amazonaws.services.s3.transfer.TransferManager` @@ -53,7 +53,7 @@ recipeList: - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: s3-transfer-manager - version: 2.38.8 + version: 2.40.0 onlyIfUsing: com.amazonaws.services.s3.transfer.TransferManager ``` diff --git a/docs/recipes/software/amazon/awssdk/v2migration/upgradesdkdependencies.md b/docs/recipes/software/amazon/awssdk/v2migration/upgradesdkdependencies.md index fe5c9ebfe7..138d529b63 100644 --- a/docs/recipes/software/amazon/awssdk/v2migration/upgradesdkdependencies.md +++ b/docs/recipes/software/amazon/awssdk/v2migration/upgradesdkdependencies.md @@ -31,2287 +31,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.38.8` + * version: `2.40.0` * onlyIfUsing: `com.amazonaws.ClientConfiguration` * [Add Gradle or Maven dependency](../../../../java/dependencies/adddependency) * groupId: `software.amazon.awssdk` * artifactId: `netty-nio-client` - * version: `2.38.8` + * version: `2.40.0` * 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.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bom` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bom` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iot` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotdataplane` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-oam` * newGroupId: `software.amazon.awssdk` * newArtifactId: `oam` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotwireless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotwireless` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-forecast` * newGroupId: `software.amazon.awssdk` * newArtifactId: `forecast` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-licensemanagerlinuxsubscriptions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `licensemanagerlinuxsubscriptions` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-docdbelastic` * newGroupId: `software.amazon.awssdk` * newArtifactId: `docdbelastic` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-emrcontainers` * newGroupId: `software.amazon.awssdk` * newArtifactId: `emrcontainers` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-timestreamwrite` * newGroupId: `software.amazon.awssdk` * newArtifactId: `timestreamwrite` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codebuild` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codebuild` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotdeviceadvisor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotdeviceadvisor` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmcontacts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmcontacts` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pcaconnectorscep` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pcaconnectorscep` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-paymentcryptographydata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `paymentcryptographydata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codeguruprofiler` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codeguruprofiler` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesis` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisvideo` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisvideo` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpoint` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpoint` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iottwinmaker` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iottwinmaker` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-organizations` * newGroupId: `software.amazon.awssdk` * newArtifactId: `organizations` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-licensemanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `licensemanager` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-shield` * newGroupId: `software.amazon.awssdk` * newArtifactId: `shield` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssm` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediastoredata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediastoredata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakerruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakerruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-signer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `signer` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servicecatalog` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicecatalog` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-timestreaminfluxdb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `timestreaminfluxdb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lakeformation` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lakeformation` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pcs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pcs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-licensemanagerusersubscriptions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `licensemanagerusersubscriptions` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-secretsmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `secretsmanager` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediaconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediaconnect` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mwaa` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mwaa` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kms` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-quicksight` * newGroupId: `software.amazon.awssdk` * newArtifactId: `quicksight` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workmail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workmail` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-eventbridge` * newGroupId: `software.amazon.awssdk` * newArtifactId: `eventbridge` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakergeospatial` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakergeospatial` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-frauddetector` * newGroupId: `software.amazon.awssdk` * newArtifactId: `frauddetector` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elastictranscoder` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elastictranscoder` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticinference` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticinference` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lookoutequipment` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lookoutequipment` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pcaconnectorad` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pcaconnectorad` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpointsmsvoice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpointsmsvoice` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-securitylake` * newGroupId: `software.amazon.awssdk` * newArtifactId: `securitylake` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatch` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatchmetrics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatch` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-glue` * newGroupId: `software.amazon.awssdk` * newArtifactId: `glue` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-costoptimizationhub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `costoptimizationhub` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servicequotas` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicequotas` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-s3` * newGroupId: `software.amazon.awssdk` * newArtifactId: `s3` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appintegrations` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appintegrations` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sesv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sesv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-arczonalshift` * newGroupId: `software.amazon.awssdk` * newArtifactId: `arczonalshift` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-emr` * newGroupId: `software.amazon.awssdk` * newArtifactId: `emr` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-controltower` * newGroupId: `software.amazon.awssdk` * newArtifactId: `controltower` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotfleethub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotfleethub` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-personalize` * newGroupId: `software.amazon.awssdk` * newArtifactId: `personalize` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-outposts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `outposts` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workdocs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workdocs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-networkmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `networkmanager` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-omics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `omics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediapackage` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediapackage` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-medialive` * newGroupId: `software.amazon.awssdk` * newArtifactId: `medialive` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediaconvert` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediaconvert` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplaceagreement` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplaceagreement` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cognitosync` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cognitosync` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sns` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sns` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-datasync` * newGroupId: `software.amazon.awssdk` * newArtifactId: `datasync` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakeredgemanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakeredge` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-greengrassv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `greengrassv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpointemail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpointemail` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cleanroomsml` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cleanroomsml` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-augmentedairuntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakera2iruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-neptunedata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `neptunedata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-b2bi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `b2bi` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotanalytics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotanalytics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-inspector2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `inspector2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-groundstation` * newGroupId: `software.amazon.awssdk` * newArtifactId: `groundstation` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-fis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `fis` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-proton` * newGroupId: `software.amazon.awssdk` * newArtifactId: `proton` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-voiceid` * newGroupId: `software.amazon.awssdk` * newArtifactId: `voiceid` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudhsm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudhsm` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ecrpublic` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ecrpublic` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servermigration` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sms` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudtraildata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudtraildata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cognitoidentity` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cognitoidentity` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-config` * newGroupId: `software.amazon.awssdk` * newArtifactId: `config` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-osis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `osis` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-private5g` * newGroupId: `software.amazon.awssdk` * newArtifactId: `privatenetworks` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-memorydb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `memorydb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-inspector` * newGroupId: `software.amazon.awssdk` * newArtifactId: `inspector` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-translate` * newGroupId: `software.amazon.awssdk` * newArtifactId: `translate` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mailmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mailmanager` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-paymentcryptography` * newGroupId: `software.amazon.awssdk` * newArtifactId: `paymentcryptography` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chatbot` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chatbot` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-fms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `fms` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmincidents` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmincidents` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-vpclattice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `vpclattice` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-s3control` * newGroupId: `software.amazon.awssdk` * newArtifactId: `s3control` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qapps` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qapps` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-rdsdata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rdsdata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisanalyticsv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisanalyticsv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qbusiness` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qbusiness` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacecommerceanalytics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacecommerceanalytics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-synthetics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `synthetics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apptest` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apptest` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-costexplorer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `costexplorer` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotsecuretunneling` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotsecuretunneling` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudfront` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudfront` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-location` * newGroupId: `software.amazon.awssdk` * newArtifactId: `location` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-wafv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `wafv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opensearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opensearch` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ec2instanceconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ec2instanceconnect` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotthingsgraph` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotthingsgraph` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-repostspace` * newGroupId: `software.amazon.awssdk` * newArtifactId: `repostspace` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53recoveryreadiness` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53recoveryreadiness` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-health` * newGroupId: `software.amazon.awssdk` * newArtifactId: `health` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workmailmessageflow` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workmailmessageflow` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-comprehendmedical` * newGroupId: `software.amazon.awssdk` * newArtifactId: `comprehendmedical` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotfleetwise` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotfleetwise` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53profiles` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53profiles` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bcmdataexports` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bcmdataexports` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-accessanalyzer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `accessanalyzer` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-glacier` * newGroupId: `software.amazon.awssdk` * newArtifactId: `glacier` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lightsail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lightsail` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatchrum` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rum` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-inspectorscan` * newGroupId: `software.amazon.awssdk` * newArtifactId: `inspectorscan` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-imagebuilder` * newGroupId: `software.amazon.awssdk` * newArtifactId: `imagebuilder` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakermetrics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakermetrics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrockagent` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrockagent` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhub` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-simspaceweaver` * newGroupId: `software.amazon.awssdk` * newArtifactId: `simspaceweaver` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticbeanstalk` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticbeanstalk` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-freetier` * newGroupId: `software.amazon.awssdk` * newArtifactId: `freetier` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudsearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudsearchdomain` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-neptune` * newGroupId: `software.amazon.awssdk` * newArtifactId: `neptune` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-supportapp` * newGroupId: `software.amazon.awssdk` * newArtifactId: `supportapp` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-transfer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `transfer` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-deadline` * newGroupId: `software.amazon.awssdk` * newArtifactId: `deadline` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-braket` * newGroupId: `software.amazon.awssdk` * newArtifactId: `braket` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-verifiedpermissions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `verifiedpermissions` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-scheduler` * newGroupId: `software.amazon.awssdk` * newArtifactId: `scheduler` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacedeployment` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacedeployment` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resourcegroups` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resourcegroups` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qldb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qldb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `databasemigration` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ecr` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ecr` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dynamodb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dynamodb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resiliencehub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resiliencehub` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qldbsession` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qldbsession` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53domains` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-macie2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `macie2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkmeetings` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkmeetings` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationautoscaling` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationautoscaling` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-entityresolution` * newGroupId: `software.amazon.awssdk` * newArtifactId: `entityresolution` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-s3outposts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `s3outposts` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-managedgrafana` * newGroupId: `software.amazon.awssdk` * newArtifactId: `grafana` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-storagegateway` * newGroupId: `software.amazon.awssdk` * newArtifactId: `storagegateway` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-recyclebin` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rbin` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ioteventsdata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ioteventsdata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53recoverycluster` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53recoverycluster` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ecs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ecs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticloadbalancing` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticloadbalancing` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectcontactlens` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectcontactlens` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkmediapipelines` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkmediapipelines` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisvideosignalingchannels` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisvideosignaling` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-qconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `qconnect` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kendraranking` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kendraranking` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudsearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudsearch` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-logs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatchlogs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appfabric` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appfabric` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lookoutforvision` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lookoutvision` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53resolver` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53resolver` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workspaces` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workspaces` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-machinelearning` * newGroupId: `software.amazon.awssdk` * newArtifactId: `machinelearning` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-costandusagereport` * newGroupId: `software.amazon.awssdk` * newArtifactId: `costandusagereport` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-taxsettings` * newGroupId: `software.amazon.awssdk` * newArtifactId: `taxsettings` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-fsx` * newGroupId: `software.amazon.awssdk` * newArtifactId: `fsx` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codepipeline` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codepipeline` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticloadbalancingv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticloadbalancingv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-directory` * newGroupId: `software.amazon.awssdk` * newArtifactId: `directory` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrockruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrockruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codestarnotifications` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codestarnotifications` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-schemas` * newGroupId: `software.amazon.awssdk` * newArtifactId: `schemas` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sqs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sqs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appregistry` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicecatalogappregistry` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appmesh` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appmesh` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhuborchestrator` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhuborchestrator` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-discovery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationdiscovery` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iot` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iot` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesisvideowebrtcstorage` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisvideowebrtcstorage` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ebs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ebs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-amplify` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amplify` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudcontrolapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudcontrol` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-wellarchitected` * newGroupId: `software.amazon.awssdk` * newArtifactId: `wellarchitected` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplaceentitlement` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplaceentitlement` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrock` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrock` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-redshift` * newGroupId: `software.amazon.awssdk` * newArtifactId: `redshift` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectcases` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectcases` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appflow` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appflow` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-gamelift` * newGroupId: `software.amazon.awssdk` * newArtifactId: `gamelift` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudtrail` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudtrail` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-supplychain` * newGroupId: `software.amazon.awssdk` * newArtifactId: `supplychain` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pipes` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pipes` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudwatchevidently` * newGroupId: `software.amazon.awssdk` * newArtifactId: `evidently` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-amplifyuibuilder` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amplifyuibuilder` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-managedblockchainquery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `managedblockchainquery` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationinsights` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationinsights` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkmessaging` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkmessaging` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediatailor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediatailor` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediapackagev2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediapackagev2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resourceexplorer2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resourceexplorer2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pi` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-emrserverless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `emrserverless` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appconfig` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appconfig` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-networkmonitor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `networkmonitor` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemakerfeaturestoreruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemakerfeaturestoreruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkidentity` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkidentity` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-computeoptimizer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `computeoptimizer` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectparticipant` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectparticipant` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mgn` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mgn` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationcostprofiler` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationcostprofiler` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [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.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-keyspaces` * newGroupId: `software.amazon.awssdk` * newArtifactId: `keyspaces` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iam` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iam` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-networkfirewall` * newGroupId: `software.amazon.awssdk` * newArtifactId: `networkfirewall` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-redshiftdataapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `redshiftdata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediastore` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediastore` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloud9` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloud9` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectwisdom` * newGroupId: `software.amazon.awssdk` * newArtifactId: `wisdom` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sso` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sso` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-auditmanager` * newGroupId: `software.amazon.awssdk` * newArtifactId: `auditmanager` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-snowball` * newGroupId: `software.amazon.awssdk` * newArtifactId: `snowball` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kinesisanalytics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53recoverycontrolconfig` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53recoverycontrolconfig` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opsworks` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opsworks` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-identitystore` * newGroupId: `software.amazon.awssdk` * newArtifactId: `identitystore` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connectcampaign` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connectcampaigns` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-textract` * newGroupId: `software.amazon.awssdk` * newArtifactId: `textract` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-redshiftserverless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `redshiftserverless` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-eks` * newGroupId: `software.amazon.awssdk` * newArtifactId: `eks` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-support` * newGroupId: `software.amazon.awssdk` * newArtifactId: `support` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mechanicalturkrequester` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mturk` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apigatewayv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apigatewayv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-devopsguru` * newGroupId: `software.amazon.awssdk` * newArtifactId: `devopsguru` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-prometheus` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amp` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-drs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `drs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhubconfig` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhubconfig` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kafkaconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kafkaconnect` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kafka` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kafka` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-gluedatabrew` * newGroupId: `software.amazon.awssdk` * newArtifactId: `databrew` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codedeploy` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codedeploy` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudhsmv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudhsmv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-batch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `batch` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-savingsplans` * newGroupId: `software.amazon.awssdk` * newArtifactId: `savingsplans` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhubstrategyrecommendations` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhubstrategy` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appsync` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appsync` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-backupgateway` * newGroupId: `software.amazon.awssdk` * newArtifactId: `backupgateway` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dlm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dlm` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-amplifybackend` * newGroupId: `software.amazon.awssdk` * newArtifactId: `amplifybackend` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-datazoneexternal` * newGroupId: `software.amazon.awssdk` * newArtifactId: `datazone` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-billingconductor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `billingconductor` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workspacesthinclient` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workspacesthinclient` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmsap` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmsap` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-budgets` * newGroupId: `software.amazon.awssdk` * newArtifactId: `budgets` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mainframemodernization` * newGroupId: `software.amazon.awssdk` * newArtifactId: `m2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-finspace` * newGroupId: `software.amazon.awssdk` * newArtifactId: `finspace` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-detective` * newGroupId: `software.amazon.awssdk` * newArtifactId: `detective` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lambda` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lambda` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssooidc` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssooidc` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-panorama` * newGroupId: `software.amazon.awssdk` * newArtifactId: `panorama` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotevents` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotevents` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-managedblockchain` * newGroupId: `software.amazon.awssdk` * newArtifactId: `managedblockchain` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-servicediscovery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `servicediscovery` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-waf` * newGroupId: `software.amazon.awssdk` * newArtifactId: `waf` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ivs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ivs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-directconnect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `directconnect` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mq` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mq` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pinpointsmsvoicev2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pinpointsmsvoicev2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-internetmonitor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `internetmonitor` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-artifact` * newGroupId: `software.amazon.awssdk` * newArtifactId: `artifact` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotsitewise` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotsitewise` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lexmodelsv2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexmodelsv2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lexruntimev2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexruntimev2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-serverlessapplicationrepository` * newGroupId: `software.amazon.awssdk` * newArtifactId: `serverlessapplicationrepository` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-eksauth` * newGroupId: `software.amazon.awssdk` * newArtifactId: `eksauth` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-snowdevicemanagement` * newGroupId: `software.amazon.awssdk` * newArtifactId: `snowdevicemanagement` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-clouddirectory` * newGroupId: `software.amazon.awssdk` * newArtifactId: `clouddirectory` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-mediapackagevod` * newGroupId: `software.amazon.awssdk` * newArtifactId: `mediapackagevod` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codestarconnections` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codestarconnections` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codeartifact` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codeartifact` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-guardduty` * newGroupId: `software.amazon.awssdk` * newArtifactId: `guardduty` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-worklink` * newGroupId: `software.amazon.awssdk` * newArtifactId: `worklink` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cleanrooms` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cleanrooms` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-customerprofiles` * newGroupId: `software.amazon.awssdk` * newArtifactId: `customerprofiles` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-trustedadvisor` * newGroupId: `software.amazon.awssdk` * newArtifactId: `trustedadvisor` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dax` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dax` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opsworkscm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opsworkscm` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-docdb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `docdb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-acmpca` * newGroupId: `software.amazon.awssdk` * newArtifactId: `acmpca` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kinesis` * newGroupId: `software.amazon.awssdk` * newArtifactId: `firehose` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ivschat` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ivschat` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-globalaccelerator` * newGroupId: `software.amazon.awssdk` * newArtifactId: `globalaccelerator` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ses` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ses` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codegurureviewer` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codegurureviewer` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lexmodelbuilding` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexmodelbuilding` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-medicalimaging` * newGroupId: `software.amazon.awssdk` * newArtifactId: `medicalimaging` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-account` * newGroupId: `software.amazon.awssdk` * newArtifactId: `account` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-robomaker` * newGroupId: `software.amazon.awssdk` * newArtifactId: `robomaker` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lex` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lexruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-autoscaling` * newGroupId: `software.amazon.awssdk` * newArtifactId: `autoscaling` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-nimblestudio` * newGroupId: `software.amazon.awssdk` * newArtifactId: `nimble` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iotjobsdataplane` * newGroupId: `software.amazon.awssdk` * newArtifactId: `iotjobsdataplane` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appconfigdata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appconfigdata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-controlcatalog` * newGroupId: `software.amazon.awssdk` * newArtifactId: `controlcatalog` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-greengrass` * newGroupId: `software.amazon.awssdk` * newArtifactId: `greengrass` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-securityhub` * newGroupId: `software.amazon.awssdk` * newArtifactId: `securityhub` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-timestreamquery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `timestreamquery` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-backup` * newGroupId: `software.amazon.awssdk` * newArtifactId: `backup` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-opensearchserverless` * newGroupId: `software.amazon.awssdk` * newArtifactId: `opensearchserverless` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cloudformation` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudformation` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-kendra` * newGroupId: `software.amazon.awssdk` * newArtifactId: `kendra` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-connect` * newGroupId: `software.amazon.awssdk` * newArtifactId: `connect` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticache` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticache` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-stepfunctions` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sfn` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-cognitoidp` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cognitoidentityprovider` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-chimesdkvoice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `chimesdkvoice` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-workspacesweb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `workspacesweb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-comprehend` * newGroupId: `software.amazon.awssdk` * newArtifactId: `comprehend` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-applicationsignals` * newGroupId: `software.amazon.awssdk` * newArtifactId: `applicationsignals` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacemeteringservice` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacemetering` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-devicefarm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `devicefarm` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-rekognition` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rekognition` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-appstream` * newGroupId: `software.amazon.awssdk` * newArtifactId: `appstream` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-polly` * newGroupId: `software.amazon.awssdk` * newArtifactId: `polly` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-rds` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rds` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-pricing` * newGroupId: `software.amazon.awssdk` * newArtifactId: `pricing` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-simpleworkflow` * newGroupId: `software.amazon.awssdk` * newArtifactId: `swf` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-events` * newGroupId: `software.amazon.awssdk` * newArtifactId: `cloudwatchevents` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssmquicksetup` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssmquicksetup` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-autoscalingplans` * newGroupId: `software.amazon.awssdk` * newArtifactId: `autoscalingplans` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-datapipeline` * newGroupId: `software.amazon.awssdk` * newArtifactId: `datapipeline` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-transcribe` * newGroupId: `software.amazon.awssdk` * newArtifactId: `transcribe` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ivsrealtime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ivsrealtime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-personalizeruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `personalizeruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-elasticsearch` * newGroupId: `software.amazon.awssdk` * newArtifactId: `elasticsearch` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codecommit` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codecommit` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-resourcegroupstaggingapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `resourcegroupstaggingapi` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-forecastquery` * newGroupId: `software.amazon.awssdk` * newArtifactId: `forecastquery` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-healthlake` * newGroupId: `software.amazon.awssdk` * newArtifactId: `healthlake` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-iamrolesanywhere` * newGroupId: `software.amazon.awssdk` * newArtifactId: `rolesanywhere` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-personalizeevents` * newGroupId: `software.amazon.awssdk` * newArtifactId: `personalizeevents` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apigatewaymanagementapi` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apigatewaymanagementapi` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-launchwizard` * newGroupId: `software.amazon.awssdk` * newArtifactId: `launchwizard` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-xray` * newGroupId: `software.amazon.awssdk` * newArtifactId: `xray` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ssoadmin` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ssoadmin` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [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.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-migrationhubrefactorspaces` * newGroupId: `software.amazon.awssdk` * newArtifactId: `migrationhubrefactorspaces` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ram` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ram` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codeconnections` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codeconnections` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-efs` * newGroupId: `software.amazon.awssdk` * newArtifactId: `efs` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-bedrockagentruntime` * newGroupId: `software.amazon.awssdk` * newArtifactId: `bedrockagentruntime` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-dataexchange` * newGroupId: `software.amazon.awssdk` * newArtifactId: `dataexchange` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sts` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sts` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-sagemaker` * newGroupId: `software.amazon.awssdk` * newArtifactId: `sagemaker` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-finspacedata` * newGroupId: `software.amazon.awssdk` * newArtifactId: `finspacedata` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-marketplacecatalog` * newGroupId: `software.amazon.awssdk` * newArtifactId: `marketplacecatalog` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-acm` * newGroupId: `software.amazon.awssdk` * newArtifactId: `acm` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-athena` * newGroupId: `software.amazon.awssdk` * newArtifactId: `athena` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-route53` * newGroupId: `software.amazon.awssdk` * newArtifactId: `route53` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-codegurusecurity` * newGroupId: `software.amazon.awssdk` * newArtifactId: `codegurusecurity` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-tnb` * newGroupId: `software.amazon.awssdk` * newArtifactId: `tnb` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-ec2` * newGroupId: `software.amazon.awssdk` * newArtifactId: `ec2` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-apprunner` * newGroupId: `software.amazon.awssdk` * newArtifactId: `apprunner` - * newVersion: `2.38.8` + * newVersion: `2.40.0` * [Change Gradle or Maven dependency](../../../../java/dependencies/changedependency) * oldGroupId: `com.amazonaws` * oldArtifactId: `aws-java-sdk-lookoutmetrics` * newGroupId: `software.amazon.awssdk` * newArtifactId: `lookoutmetrics` - * newVersion: `2.38.8` + * newVersion: `2.40.0` @@ -2328,2287 +2328,2287 @@ recipeList: - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: apache-client - version: 2.38.8 + version: 2.40.0 onlyIfUsing: com.amazonaws.ClientConfiguration - org.openrewrite.java.dependencies.AddDependency: groupId: software.amazon.awssdk artifactId: netty-nio-client - version: 2.38.8 + version: 2.40.0 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.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bom newGroupId: software.amazon.awssdk newArtifactId: bom - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iot newGroupId: software.amazon.awssdk newArtifactId: iotdataplane - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-oam newGroupId: software.amazon.awssdk newArtifactId: oam - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotwireless newGroupId: software.amazon.awssdk newArtifactId: iotwireless - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-forecast newGroupId: software.amazon.awssdk newArtifactId: forecast - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-licensemanagerlinuxsubscriptions newGroupId: software.amazon.awssdk newArtifactId: licensemanagerlinuxsubscriptions - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-docdbelastic newGroupId: software.amazon.awssdk newArtifactId: docdbelastic - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-emrcontainers newGroupId: software.amazon.awssdk newArtifactId: emrcontainers - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-timestreamwrite newGroupId: software.amazon.awssdk newArtifactId: timestreamwrite - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codebuild newGroupId: software.amazon.awssdk newArtifactId: codebuild - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotdeviceadvisor newGroupId: software.amazon.awssdk newArtifactId: iotdeviceadvisor - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmcontacts newGroupId: software.amazon.awssdk newArtifactId: ssmcontacts - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pcaconnectorscep newGroupId: software.amazon.awssdk newArtifactId: pcaconnectorscep - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-paymentcryptographydata newGroupId: software.amazon.awssdk newArtifactId: paymentcryptographydata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codeguruprofiler newGroupId: software.amazon.awssdk newArtifactId: codeguruprofiler - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesis newGroupId: software.amazon.awssdk newArtifactId: kinesis - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisvideo newGroupId: software.amazon.awssdk newArtifactId: kinesisvideo - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpoint newGroupId: software.amazon.awssdk newArtifactId: pinpoint - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chime newGroupId: software.amazon.awssdk newArtifactId: chime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iottwinmaker newGroupId: software.amazon.awssdk newArtifactId: iottwinmaker - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-organizations newGroupId: software.amazon.awssdk newArtifactId: organizations - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-licensemanager newGroupId: software.amazon.awssdk newArtifactId: licensemanager - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-shield newGroupId: software.amazon.awssdk newArtifactId: shield - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssm newGroupId: software.amazon.awssdk newArtifactId: ssm - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediastoredata newGroupId: software.amazon.awssdk newArtifactId: mediastoredata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakerruntime newGroupId: software.amazon.awssdk newArtifactId: sagemakerruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-signer newGroupId: software.amazon.awssdk newArtifactId: signer - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servicecatalog newGroupId: software.amazon.awssdk newArtifactId: servicecatalog - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-timestreaminfluxdb newGroupId: software.amazon.awssdk newArtifactId: timestreaminfluxdb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lakeformation newGroupId: software.amazon.awssdk newArtifactId: lakeformation - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pcs newGroupId: software.amazon.awssdk newArtifactId: pcs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-licensemanagerusersubscriptions newGroupId: software.amazon.awssdk newArtifactId: licensemanagerusersubscriptions - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-secretsmanager newGroupId: software.amazon.awssdk newArtifactId: secretsmanager - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediaconnect newGroupId: software.amazon.awssdk newArtifactId: mediaconnect - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mwaa newGroupId: software.amazon.awssdk newArtifactId: mwaa - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kms newGroupId: software.amazon.awssdk newArtifactId: kms - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-quicksight newGroupId: software.amazon.awssdk newArtifactId: quicksight - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workmail newGroupId: software.amazon.awssdk newArtifactId: workmail - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-eventbridge newGroupId: software.amazon.awssdk newArtifactId: eventbridge - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakergeospatial newGroupId: software.amazon.awssdk newArtifactId: sagemakergeospatial - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-frauddetector newGroupId: software.amazon.awssdk newArtifactId: frauddetector - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elastictranscoder newGroupId: software.amazon.awssdk newArtifactId: elastictranscoder - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticinference newGroupId: software.amazon.awssdk newArtifactId: elasticinference - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lookoutequipment newGroupId: software.amazon.awssdk newArtifactId: lookoutequipment - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pcaconnectorad newGroupId: software.amazon.awssdk newArtifactId: pcaconnectorad - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpointsmsvoice newGroupId: software.amazon.awssdk newArtifactId: pinpointsmsvoice - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-securitylake newGroupId: software.amazon.awssdk newArtifactId: securitylake - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatch newGroupId: software.amazon.awssdk newArtifactId: cloudwatch - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatchmetrics newGroupId: software.amazon.awssdk newArtifactId: cloudwatch - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-glue newGroupId: software.amazon.awssdk newArtifactId: glue - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-costoptimizationhub newGroupId: software.amazon.awssdk newArtifactId: costoptimizationhub - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servicequotas newGroupId: software.amazon.awssdk newArtifactId: servicequotas - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-s3 newGroupId: software.amazon.awssdk newArtifactId: s3 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appintegrations newGroupId: software.amazon.awssdk newArtifactId: appintegrations - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sesv2 newGroupId: software.amazon.awssdk newArtifactId: sesv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-arczonalshift newGroupId: software.amazon.awssdk newArtifactId: arczonalshift - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-emr newGroupId: software.amazon.awssdk newArtifactId: emr - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-controltower newGroupId: software.amazon.awssdk newArtifactId: controltower - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotfleethub newGroupId: software.amazon.awssdk newArtifactId: iotfleethub - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-personalize newGroupId: software.amazon.awssdk newArtifactId: personalize - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-outposts newGroupId: software.amazon.awssdk newArtifactId: outposts - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workdocs newGroupId: software.amazon.awssdk newArtifactId: workdocs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-networkmanager newGroupId: software.amazon.awssdk newArtifactId: networkmanager - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-omics newGroupId: software.amazon.awssdk newArtifactId: omics - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediapackage newGroupId: software.amazon.awssdk newArtifactId: mediapackage - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-medialive newGroupId: software.amazon.awssdk newArtifactId: medialive - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediaconvert newGroupId: software.amazon.awssdk newArtifactId: mediaconvert - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplaceagreement newGroupId: software.amazon.awssdk newArtifactId: marketplaceagreement - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cognitosync newGroupId: software.amazon.awssdk newArtifactId: cognitosync - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sns newGroupId: software.amazon.awssdk newArtifactId: sns - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-datasync newGroupId: software.amazon.awssdk newArtifactId: datasync - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakeredgemanager newGroupId: software.amazon.awssdk newArtifactId: sagemakeredge - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-greengrassv2 newGroupId: software.amazon.awssdk newArtifactId: greengrassv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpointemail newGroupId: software.amazon.awssdk newArtifactId: pinpointemail - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cleanroomsml newGroupId: software.amazon.awssdk newArtifactId: cleanroomsml - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-augmentedairuntime newGroupId: software.amazon.awssdk newArtifactId: sagemakera2iruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-neptunedata newGroupId: software.amazon.awssdk newArtifactId: neptunedata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-b2bi newGroupId: software.amazon.awssdk newArtifactId: b2bi - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotanalytics newGroupId: software.amazon.awssdk newArtifactId: iotanalytics - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-inspector2 newGroupId: software.amazon.awssdk newArtifactId: inspector2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-groundstation newGroupId: software.amazon.awssdk newArtifactId: groundstation - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-fis newGroupId: software.amazon.awssdk newArtifactId: fis - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-proton newGroupId: software.amazon.awssdk newArtifactId: proton - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-voiceid newGroupId: software.amazon.awssdk newArtifactId: voiceid - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudhsm newGroupId: software.amazon.awssdk newArtifactId: cloudhsm - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ecrpublic newGroupId: software.amazon.awssdk newArtifactId: ecrpublic - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servermigration newGroupId: software.amazon.awssdk newArtifactId: sms - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudtraildata newGroupId: software.amazon.awssdk newArtifactId: cloudtraildata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cognitoidentity newGroupId: software.amazon.awssdk newArtifactId: cognitoidentity - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-config newGroupId: software.amazon.awssdk newArtifactId: config - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-osis newGroupId: software.amazon.awssdk newArtifactId: osis - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-private5g newGroupId: software.amazon.awssdk newArtifactId: privatenetworks - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-memorydb newGroupId: software.amazon.awssdk newArtifactId: memorydb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-inspector newGroupId: software.amazon.awssdk newArtifactId: inspector - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-translate newGroupId: software.amazon.awssdk newArtifactId: translate - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mailmanager newGroupId: software.amazon.awssdk newArtifactId: mailmanager - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-paymentcryptography newGroupId: software.amazon.awssdk newArtifactId: paymentcryptography - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chatbot newGroupId: software.amazon.awssdk newArtifactId: chatbot - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-fms newGroupId: software.amazon.awssdk newArtifactId: fms - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmincidents newGroupId: software.amazon.awssdk newArtifactId: ssmincidents - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-vpclattice newGroupId: software.amazon.awssdk newArtifactId: vpclattice - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-s3control newGroupId: software.amazon.awssdk newArtifactId: s3control - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qapps newGroupId: software.amazon.awssdk newArtifactId: qapps - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-rdsdata newGroupId: software.amazon.awssdk newArtifactId: rdsdata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisanalyticsv2 newGroupId: software.amazon.awssdk newArtifactId: kinesisanalyticsv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qbusiness newGroupId: software.amazon.awssdk newArtifactId: qbusiness - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacecommerceanalytics newGroupId: software.amazon.awssdk newArtifactId: marketplacecommerceanalytics - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-synthetics newGroupId: software.amazon.awssdk newArtifactId: synthetics - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apptest newGroupId: software.amazon.awssdk newArtifactId: apptest - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-costexplorer newGroupId: software.amazon.awssdk newArtifactId: costexplorer - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotsecuretunneling newGroupId: software.amazon.awssdk newArtifactId: iotsecuretunneling - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudfront newGroupId: software.amazon.awssdk newArtifactId: cloudfront - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-location newGroupId: software.amazon.awssdk newArtifactId: location - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-wafv2 newGroupId: software.amazon.awssdk newArtifactId: wafv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opensearch newGroupId: software.amazon.awssdk newArtifactId: opensearch - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ec2instanceconnect newGroupId: software.amazon.awssdk newArtifactId: ec2instanceconnect - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotthingsgraph newGroupId: software.amazon.awssdk newArtifactId: iotthingsgraph - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-repostspace newGroupId: software.amazon.awssdk newArtifactId: repostspace - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53recoveryreadiness newGroupId: software.amazon.awssdk newArtifactId: route53recoveryreadiness - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-health newGroupId: software.amazon.awssdk newArtifactId: health - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workmailmessageflow newGroupId: software.amazon.awssdk newArtifactId: workmailmessageflow - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-comprehendmedical newGroupId: software.amazon.awssdk newArtifactId: comprehendmedical - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotfleetwise newGroupId: software.amazon.awssdk newArtifactId: iotfleetwise - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53profiles newGroupId: software.amazon.awssdk newArtifactId: route53profiles - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bcmdataexports newGroupId: software.amazon.awssdk newArtifactId: bcmdataexports - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-accessanalyzer newGroupId: software.amazon.awssdk newArtifactId: accessanalyzer - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-glacier newGroupId: software.amazon.awssdk newArtifactId: glacier - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lightsail newGroupId: software.amazon.awssdk newArtifactId: lightsail - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatchrum newGroupId: software.amazon.awssdk newArtifactId: rum - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-inspectorscan newGroupId: software.amazon.awssdk newArtifactId: inspectorscan - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-imagebuilder newGroupId: software.amazon.awssdk newArtifactId: imagebuilder - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakermetrics newGroupId: software.amazon.awssdk newArtifactId: sagemakermetrics - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrockagent newGroupId: software.amazon.awssdk newArtifactId: bedrockagent - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhub newGroupId: software.amazon.awssdk newArtifactId: migrationhub - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-simspaceweaver newGroupId: software.amazon.awssdk newArtifactId: simspaceweaver - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticbeanstalk newGroupId: software.amazon.awssdk newArtifactId: elasticbeanstalk - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-freetier newGroupId: software.amazon.awssdk newArtifactId: freetier - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudsearch newGroupId: software.amazon.awssdk newArtifactId: cloudsearchdomain - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-neptune newGroupId: software.amazon.awssdk newArtifactId: neptune - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-supportapp newGroupId: software.amazon.awssdk newArtifactId: supportapp - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-transfer newGroupId: software.amazon.awssdk newArtifactId: transfer - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-deadline newGroupId: software.amazon.awssdk newArtifactId: deadline - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-braket newGroupId: software.amazon.awssdk newArtifactId: braket - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-verifiedpermissions newGroupId: software.amazon.awssdk newArtifactId: verifiedpermissions - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-scheduler newGroupId: software.amazon.awssdk newArtifactId: scheduler - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacedeployment newGroupId: software.amazon.awssdk newArtifactId: marketplacedeployment - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resourcegroups newGroupId: software.amazon.awssdk newArtifactId: resourcegroups - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qldb newGroupId: software.amazon.awssdk newArtifactId: qldb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dms newGroupId: software.amazon.awssdk newArtifactId: databasemigration - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ecr newGroupId: software.amazon.awssdk newArtifactId: ecr - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dynamodb newGroupId: software.amazon.awssdk newArtifactId: dynamodb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resiliencehub newGroupId: software.amazon.awssdk newArtifactId: resiliencehub - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qldbsession newGroupId: software.amazon.awssdk newArtifactId: qldbsession - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53 newGroupId: software.amazon.awssdk newArtifactId: route53domains - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-macie2 newGroupId: software.amazon.awssdk newArtifactId: macie2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkmeetings newGroupId: software.amazon.awssdk newArtifactId: chimesdkmeetings - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationautoscaling newGroupId: software.amazon.awssdk newArtifactId: applicationautoscaling - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-entityresolution newGroupId: software.amazon.awssdk newArtifactId: entityresolution - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-s3outposts newGroupId: software.amazon.awssdk newArtifactId: s3outposts - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-managedgrafana newGroupId: software.amazon.awssdk newArtifactId: grafana - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-storagegateway newGroupId: software.amazon.awssdk newArtifactId: storagegateway - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-recyclebin newGroupId: software.amazon.awssdk newArtifactId: rbin - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ioteventsdata newGroupId: software.amazon.awssdk newArtifactId: ioteventsdata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53recoverycluster newGroupId: software.amazon.awssdk newArtifactId: route53recoverycluster - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ecs newGroupId: software.amazon.awssdk newArtifactId: ecs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticloadbalancing newGroupId: software.amazon.awssdk newArtifactId: elasticloadbalancing - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectcontactlens newGroupId: software.amazon.awssdk newArtifactId: connectcontactlens - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkmediapipelines newGroupId: software.amazon.awssdk newArtifactId: chimesdkmediapipelines - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisvideosignalingchannels newGroupId: software.amazon.awssdk newArtifactId: kinesisvideosignaling - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-qconnect newGroupId: software.amazon.awssdk newArtifactId: qconnect - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kendraranking newGroupId: software.amazon.awssdk newArtifactId: kendraranking - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudsearch newGroupId: software.amazon.awssdk newArtifactId: cloudsearch - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-logs newGroupId: software.amazon.awssdk newArtifactId: cloudwatchlogs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appfabric newGroupId: software.amazon.awssdk newArtifactId: appfabric - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lookoutforvision newGroupId: software.amazon.awssdk newArtifactId: lookoutvision - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53resolver newGroupId: software.amazon.awssdk newArtifactId: route53resolver - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workspaces newGroupId: software.amazon.awssdk newArtifactId: workspaces - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-machinelearning newGroupId: software.amazon.awssdk newArtifactId: machinelearning - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-costandusagereport newGroupId: software.amazon.awssdk newArtifactId: costandusagereport - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-taxsettings newGroupId: software.amazon.awssdk newArtifactId: taxsettings - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-fsx newGroupId: software.amazon.awssdk newArtifactId: fsx - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codepipeline newGroupId: software.amazon.awssdk newArtifactId: codepipeline - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticloadbalancingv2 newGroupId: software.amazon.awssdk newArtifactId: elasticloadbalancingv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-directory newGroupId: software.amazon.awssdk newArtifactId: directory - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrockruntime newGroupId: software.amazon.awssdk newArtifactId: bedrockruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codestarnotifications newGroupId: software.amazon.awssdk newArtifactId: codestarnotifications - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-schemas newGroupId: software.amazon.awssdk newArtifactId: schemas - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sqs newGroupId: software.amazon.awssdk newArtifactId: sqs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appregistry newGroupId: software.amazon.awssdk newArtifactId: servicecatalogappregistry - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appmesh newGroupId: software.amazon.awssdk newArtifactId: appmesh - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhuborchestrator newGroupId: software.amazon.awssdk newArtifactId: migrationhuborchestrator - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-discovery newGroupId: software.amazon.awssdk newArtifactId: applicationdiscovery - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iot newGroupId: software.amazon.awssdk newArtifactId: iot - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesisvideowebrtcstorage newGroupId: software.amazon.awssdk newArtifactId: kinesisvideowebrtcstorage - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ebs newGroupId: software.amazon.awssdk newArtifactId: ebs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-amplify newGroupId: software.amazon.awssdk newArtifactId: amplify - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudcontrolapi newGroupId: software.amazon.awssdk newArtifactId: cloudcontrol - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-wellarchitected newGroupId: software.amazon.awssdk newArtifactId: wellarchitected - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplaceentitlement newGroupId: software.amazon.awssdk newArtifactId: marketplaceentitlement - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrock newGroupId: software.amazon.awssdk newArtifactId: bedrock - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-redshift newGroupId: software.amazon.awssdk newArtifactId: redshift - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectcases newGroupId: software.amazon.awssdk newArtifactId: connectcases - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appflow newGroupId: software.amazon.awssdk newArtifactId: appflow - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-gamelift newGroupId: software.amazon.awssdk newArtifactId: gamelift - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudtrail newGroupId: software.amazon.awssdk newArtifactId: cloudtrail - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-supplychain newGroupId: software.amazon.awssdk newArtifactId: supplychain - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pipes newGroupId: software.amazon.awssdk newArtifactId: pipes - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudwatchevidently newGroupId: software.amazon.awssdk newArtifactId: evidently - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-amplifyuibuilder newGroupId: software.amazon.awssdk newArtifactId: amplifyuibuilder - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-managedblockchainquery newGroupId: software.amazon.awssdk newArtifactId: managedblockchainquery - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationinsights newGroupId: software.amazon.awssdk newArtifactId: applicationinsights - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkmessaging newGroupId: software.amazon.awssdk newArtifactId: chimesdkmessaging - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediatailor newGroupId: software.amazon.awssdk newArtifactId: mediatailor - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediapackagev2 newGroupId: software.amazon.awssdk newArtifactId: mediapackagev2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resourceexplorer2 newGroupId: software.amazon.awssdk newArtifactId: resourceexplorer2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pi newGroupId: software.amazon.awssdk newArtifactId: pi - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-emrserverless newGroupId: software.amazon.awssdk newArtifactId: emrserverless - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appconfig newGroupId: software.amazon.awssdk newArtifactId: appconfig - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-networkmonitor newGroupId: software.amazon.awssdk newArtifactId: networkmonitor - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemakerfeaturestoreruntime newGroupId: software.amazon.awssdk newArtifactId: sagemakerfeaturestoreruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkidentity newGroupId: software.amazon.awssdk newArtifactId: chimesdkidentity - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-computeoptimizer newGroupId: software.amazon.awssdk newArtifactId: computeoptimizer - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectparticipant newGroupId: software.amazon.awssdk newArtifactId: connectparticipant - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mgn newGroupId: software.amazon.awssdk newArtifactId: mgn - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationcostprofiler newGroupId: software.amazon.awssdk newArtifactId: applicationcostprofiler - newVersion: 2.38.8 + newVersion: 2.40.0 - 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.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-keyspaces newGroupId: software.amazon.awssdk newArtifactId: keyspaces - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iam newGroupId: software.amazon.awssdk newArtifactId: iam - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-networkfirewall newGroupId: software.amazon.awssdk newArtifactId: networkfirewall - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-redshiftdataapi newGroupId: software.amazon.awssdk newArtifactId: redshiftdata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediastore newGroupId: software.amazon.awssdk newArtifactId: mediastore - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloud9 newGroupId: software.amazon.awssdk newArtifactId: cloud9 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectwisdom newGroupId: software.amazon.awssdk newArtifactId: wisdom - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sso newGroupId: software.amazon.awssdk newArtifactId: sso - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-auditmanager newGroupId: software.amazon.awssdk newArtifactId: auditmanager - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-snowball newGroupId: software.amazon.awssdk newArtifactId: snowball - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesis newGroupId: software.amazon.awssdk newArtifactId: kinesisanalytics - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53recoverycontrolconfig newGroupId: software.amazon.awssdk newArtifactId: route53recoverycontrolconfig - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opsworks newGroupId: software.amazon.awssdk newArtifactId: opsworks - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-identitystore newGroupId: software.amazon.awssdk newArtifactId: identitystore - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connectcampaign newGroupId: software.amazon.awssdk newArtifactId: connectcampaigns - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-textract newGroupId: software.amazon.awssdk newArtifactId: textract - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-redshiftserverless newGroupId: software.amazon.awssdk newArtifactId: redshiftserverless - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-eks newGroupId: software.amazon.awssdk newArtifactId: eks - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-support newGroupId: software.amazon.awssdk newArtifactId: support - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mechanicalturkrequester newGroupId: software.amazon.awssdk newArtifactId: mturk - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apigatewayv2 newGroupId: software.amazon.awssdk newArtifactId: apigatewayv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-devopsguru newGroupId: software.amazon.awssdk newArtifactId: devopsguru - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-prometheus newGroupId: software.amazon.awssdk newArtifactId: amp - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-drs newGroupId: software.amazon.awssdk newArtifactId: drs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhubconfig newGroupId: software.amazon.awssdk newArtifactId: migrationhubconfig - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kafkaconnect newGroupId: software.amazon.awssdk newArtifactId: kafkaconnect - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kafka newGroupId: software.amazon.awssdk newArtifactId: kafka - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-gluedatabrew newGroupId: software.amazon.awssdk newArtifactId: databrew - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codedeploy newGroupId: software.amazon.awssdk newArtifactId: codedeploy - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudhsmv2 newGroupId: software.amazon.awssdk newArtifactId: cloudhsmv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-batch newGroupId: software.amazon.awssdk newArtifactId: batch - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-savingsplans newGroupId: software.amazon.awssdk newArtifactId: savingsplans - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhubstrategyrecommendations newGroupId: software.amazon.awssdk newArtifactId: migrationhubstrategy - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appsync newGroupId: software.amazon.awssdk newArtifactId: appsync - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-backupgateway newGroupId: software.amazon.awssdk newArtifactId: backupgateway - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dlm newGroupId: software.amazon.awssdk newArtifactId: dlm - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-amplifybackend newGroupId: software.amazon.awssdk newArtifactId: amplifybackend - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-datazoneexternal newGroupId: software.amazon.awssdk newArtifactId: datazone - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-billingconductor newGroupId: software.amazon.awssdk newArtifactId: billingconductor - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workspacesthinclient newGroupId: software.amazon.awssdk newArtifactId: workspacesthinclient - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmsap newGroupId: software.amazon.awssdk newArtifactId: ssmsap - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-budgets newGroupId: software.amazon.awssdk newArtifactId: budgets - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mainframemodernization newGroupId: software.amazon.awssdk newArtifactId: m2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-finspace newGroupId: software.amazon.awssdk newArtifactId: finspace - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-detective newGroupId: software.amazon.awssdk newArtifactId: detective - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lambda newGroupId: software.amazon.awssdk newArtifactId: lambda - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssooidc newGroupId: software.amazon.awssdk newArtifactId: ssooidc - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-panorama newGroupId: software.amazon.awssdk newArtifactId: panorama - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotevents newGroupId: software.amazon.awssdk newArtifactId: iotevents - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-managedblockchain newGroupId: software.amazon.awssdk newArtifactId: managedblockchain - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-servicediscovery newGroupId: software.amazon.awssdk newArtifactId: servicediscovery - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-waf newGroupId: software.amazon.awssdk newArtifactId: waf - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ivs newGroupId: software.amazon.awssdk newArtifactId: ivs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-directconnect newGroupId: software.amazon.awssdk newArtifactId: directconnect - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mq newGroupId: software.amazon.awssdk newArtifactId: mq - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pinpointsmsvoicev2 newGroupId: software.amazon.awssdk newArtifactId: pinpointsmsvoicev2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-internetmonitor newGroupId: software.amazon.awssdk newArtifactId: internetmonitor - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-artifact newGroupId: software.amazon.awssdk newArtifactId: artifact - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotsitewise newGroupId: software.amazon.awssdk newArtifactId: iotsitewise - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lexmodelsv2 newGroupId: software.amazon.awssdk newArtifactId: lexmodelsv2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lexruntimev2 newGroupId: software.amazon.awssdk newArtifactId: lexruntimev2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-serverlessapplicationrepository newGroupId: software.amazon.awssdk newArtifactId: serverlessapplicationrepository - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-eksauth newGroupId: software.amazon.awssdk newArtifactId: eksauth - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-snowdevicemanagement newGroupId: software.amazon.awssdk newArtifactId: snowdevicemanagement - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-clouddirectory newGroupId: software.amazon.awssdk newArtifactId: clouddirectory - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-mediapackagevod newGroupId: software.amazon.awssdk newArtifactId: mediapackagevod - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codestarconnections newGroupId: software.amazon.awssdk newArtifactId: codestarconnections - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codeartifact newGroupId: software.amazon.awssdk newArtifactId: codeartifact - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-guardduty newGroupId: software.amazon.awssdk newArtifactId: guardduty - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-worklink newGroupId: software.amazon.awssdk newArtifactId: worklink - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cleanrooms newGroupId: software.amazon.awssdk newArtifactId: cleanrooms - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-customerprofiles newGroupId: software.amazon.awssdk newArtifactId: customerprofiles - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-trustedadvisor newGroupId: software.amazon.awssdk newArtifactId: trustedadvisor - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dax newGroupId: software.amazon.awssdk newArtifactId: dax - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opsworkscm newGroupId: software.amazon.awssdk newArtifactId: opsworkscm - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-docdb newGroupId: software.amazon.awssdk newArtifactId: docdb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-acmpca newGroupId: software.amazon.awssdk newArtifactId: acmpca - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kinesis newGroupId: software.amazon.awssdk newArtifactId: firehose - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ivschat newGroupId: software.amazon.awssdk newArtifactId: ivschat - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-globalaccelerator newGroupId: software.amazon.awssdk newArtifactId: globalaccelerator - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ses newGroupId: software.amazon.awssdk newArtifactId: ses - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codegurureviewer newGroupId: software.amazon.awssdk newArtifactId: codegurureviewer - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lexmodelbuilding newGroupId: software.amazon.awssdk newArtifactId: lexmodelbuilding - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-medicalimaging newGroupId: software.amazon.awssdk newArtifactId: medicalimaging - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-account newGroupId: software.amazon.awssdk newArtifactId: account - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-robomaker newGroupId: software.amazon.awssdk newArtifactId: robomaker - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lex newGroupId: software.amazon.awssdk newArtifactId: lexruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-autoscaling newGroupId: software.amazon.awssdk newArtifactId: autoscaling - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-nimblestudio newGroupId: software.amazon.awssdk newArtifactId: nimble - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iotjobsdataplane newGroupId: software.amazon.awssdk newArtifactId: iotjobsdataplane - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appconfigdata newGroupId: software.amazon.awssdk newArtifactId: appconfigdata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-controlcatalog newGroupId: software.amazon.awssdk newArtifactId: controlcatalog - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-greengrass newGroupId: software.amazon.awssdk newArtifactId: greengrass - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-securityhub newGroupId: software.amazon.awssdk newArtifactId: securityhub - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-timestreamquery newGroupId: software.amazon.awssdk newArtifactId: timestreamquery - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-backup newGroupId: software.amazon.awssdk newArtifactId: backup - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-opensearchserverless newGroupId: software.amazon.awssdk newArtifactId: opensearchserverless - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cloudformation newGroupId: software.amazon.awssdk newArtifactId: cloudformation - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-kendra newGroupId: software.amazon.awssdk newArtifactId: kendra - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-connect newGroupId: software.amazon.awssdk newArtifactId: connect - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticache newGroupId: software.amazon.awssdk newArtifactId: elasticache - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-stepfunctions newGroupId: software.amazon.awssdk newArtifactId: sfn - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-cognitoidp newGroupId: software.amazon.awssdk newArtifactId: cognitoidentityprovider - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-chimesdkvoice newGroupId: software.amazon.awssdk newArtifactId: chimesdkvoice - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-workspacesweb newGroupId: software.amazon.awssdk newArtifactId: workspacesweb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-comprehend newGroupId: software.amazon.awssdk newArtifactId: comprehend - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-applicationsignals newGroupId: software.amazon.awssdk newArtifactId: applicationsignals - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacemeteringservice newGroupId: software.amazon.awssdk newArtifactId: marketplacemetering - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-devicefarm newGroupId: software.amazon.awssdk newArtifactId: devicefarm - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-rekognition newGroupId: software.amazon.awssdk newArtifactId: rekognition - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-appstream newGroupId: software.amazon.awssdk newArtifactId: appstream - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-polly newGroupId: software.amazon.awssdk newArtifactId: polly - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-rds newGroupId: software.amazon.awssdk newArtifactId: rds - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-pricing newGroupId: software.amazon.awssdk newArtifactId: pricing - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-simpleworkflow newGroupId: software.amazon.awssdk newArtifactId: swf - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-events newGroupId: software.amazon.awssdk newArtifactId: cloudwatchevents - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssmquicksetup newGroupId: software.amazon.awssdk newArtifactId: ssmquicksetup - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-autoscalingplans newGroupId: software.amazon.awssdk newArtifactId: autoscalingplans - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-datapipeline newGroupId: software.amazon.awssdk newArtifactId: datapipeline - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-transcribe newGroupId: software.amazon.awssdk newArtifactId: transcribe - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ivsrealtime newGroupId: software.amazon.awssdk newArtifactId: ivsrealtime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-personalizeruntime newGroupId: software.amazon.awssdk newArtifactId: personalizeruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-elasticsearch newGroupId: software.amazon.awssdk newArtifactId: elasticsearch - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codecommit newGroupId: software.amazon.awssdk newArtifactId: codecommit - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-resourcegroupstaggingapi newGroupId: software.amazon.awssdk newArtifactId: resourcegroupstaggingapi - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-forecastquery newGroupId: software.amazon.awssdk newArtifactId: forecastquery - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-healthlake newGroupId: software.amazon.awssdk newArtifactId: healthlake - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-iamrolesanywhere newGroupId: software.amazon.awssdk newArtifactId: rolesanywhere - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-personalizeevents newGroupId: software.amazon.awssdk newArtifactId: personalizeevents - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apigatewaymanagementapi newGroupId: software.amazon.awssdk newArtifactId: apigatewaymanagementapi - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-launchwizard newGroupId: software.amazon.awssdk newArtifactId: launchwizard - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-xray newGroupId: software.amazon.awssdk newArtifactId: xray - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ssoadmin newGroupId: software.amazon.awssdk newArtifactId: ssoadmin - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-api-gateway newGroupId: software.amazon.awssdk newArtifactId: apigateway - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-migrationhubrefactorspaces newGroupId: software.amazon.awssdk newArtifactId: migrationhubrefactorspaces - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ram newGroupId: software.amazon.awssdk newArtifactId: ram - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codeconnections newGroupId: software.amazon.awssdk newArtifactId: codeconnections - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-efs newGroupId: software.amazon.awssdk newArtifactId: efs - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-bedrockagentruntime newGroupId: software.amazon.awssdk newArtifactId: bedrockagentruntime - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-dataexchange newGroupId: software.amazon.awssdk newArtifactId: dataexchange - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sts newGroupId: software.amazon.awssdk newArtifactId: sts - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-sagemaker newGroupId: software.amazon.awssdk newArtifactId: sagemaker - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-finspacedata newGroupId: software.amazon.awssdk newArtifactId: finspacedata - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-marketplacecatalog newGroupId: software.amazon.awssdk newArtifactId: marketplacecatalog - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-acm newGroupId: software.amazon.awssdk newArtifactId: acm - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-athena newGroupId: software.amazon.awssdk newArtifactId: athena - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-route53 newGroupId: software.amazon.awssdk newArtifactId: route53 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-codegurusecurity newGroupId: software.amazon.awssdk newArtifactId: codegurusecurity - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-tnb newGroupId: software.amazon.awssdk newArtifactId: tnb - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-ec2 newGroupId: software.amazon.awssdk newArtifactId: ec2 - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-apprunner newGroupId: software.amazon.awssdk newArtifactId: apprunner - newVersion: 2.38.8 + newVersion: 2.40.0 - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: com.amazonaws oldArtifactId: aws-java-sdk-lookoutmetrics newGroupId: software.amazon.awssdk newArtifactId: lookoutmetrics - newVersion: 2.38.8 + newVersion: 2.40.0 ``` diff --git a/docs/recipes/staticanalysis/java/movefieldannotationtotype.md b/docs/recipes/staticanalysis/java/movefieldannotationtotype.md index d4f3f4583f..51e3fb9157 100644 --- a/docs/recipes/staticanalysis/java/movefieldannotationtotype.md +++ b/docs/recipes/staticanalysis/java/movefieldannotationtotype.md @@ -33,6 +33,7 @@ This recipe is used as part of the following composite recipes: * [Migrate from Jakarta annotation API to JSpecify](/recipes/java/jspecify/migratefromjakartaannotationapi.md) * [Migrate from JetBrains annotations to JSpecify](/recipes/java/jspecify/migratefromjetbrainsannotations.md) * [Migrate from Micrometer annotations to JSpecify](/recipes/java/jspecify/migratefrommicrometerannotations.md) +* [Migrate from Micronaut Framework annotations to JSpecify](/recipes/java/jspecify/migratefrommicronautannotations.md) * [Migrate from OpenRewrite annotations to JSpecify](/recipes/java/jspecify/migratefromopenrewriteannotations.md) * [Migrate from Spring Framework annotations to JSpecify](/recipes/java/jspecify/migratefromspringframeworkannotations.md) * [Migrate from javax annotation API to JSpecify](/recipes/java/jspecify/migratefromjavaxannotationapi.md) diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/README.md b/docs/recipes/tech/picnic/errorprone/refasterrules/README.md index 247384b30b..7052431629 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/README.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/README.md @@ -51,7 +51,8 @@ _Recipes that include further recipes, often including the individual recipes be * [`ImmutableTableRules` Refaster recipes](./immutabletablerulesrecipes.md) * [`InputStreamRules` Refaster recipes](./inputstreamrulesrecipes.md) * [`IntStreamRules` Refaster recipes](./intstreamrulesrecipes.md) -* [`JacksonRules` Refaster recipes](./jacksonrulesrecipes.md) +* [`Jackson2Rules` Refaster recipes](./jackson2rulesrecipes.md) +* [`Jackson3Rules` Refaster recipes](./jackson3rulesrecipes.md) * [`LongStreamRules` Refaster recipes](./longstreamrulesrecipes.md) * [`MapEntryRules` Refaster recipes](./mapentryrulesrecipes.md) * [`MapRules` Refaster recipes](./maprulesrecipes.md) @@ -74,6 +75,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster rules that replace TestNG assertions with equivalent AssertJ assertions](./testngtoassertjrulesrecipes.md) * [Refaster rules to replace JUnit assertions with AssertJ equivalents](./junittoassertjrulesrecipes.md) * [`RxJava2AdapterRules` Refaster recipes](./rxjava2adapterrulesrecipes.md) +* [`SpringTestRules` Refaster recipes](./springtestrulesrecipes.md) * [`StreamRules` Refaster recipes](./streamrulesrecipes.md) * [`StringRules` Refaster recipes](./stringrulesrecipes.md) * [`SuggestedFixRules` Refaster recipes](./suggestedfixrulesrecipes.md) @@ -337,8 +339,10 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `BigDecimalRules.BigDecimalSignumIsPositive`](./bigdecimalrulesrecipes$bigdecimalsignumispositiverecipe.md) * [Refaster template `BigDecimalRules.BigDecimalSignumIsZero`](./bigdecimalrulesrecipes$bigdecimalsignumiszerorecipe.md) * [Refaster template `BigDecimalRules.BigDecimalTen`](./bigdecimalrulesrecipes$bigdecimaltenrecipe.md) +* [Refaster template `BigDecimalRules.BigDecimalTwo`](./bigdecimalrulesrecipes$bigdecimaltworecipe.md) * [Refaster template `BigDecimalRules.BigDecimalValueOf`](./bigdecimalrulesrecipes$bigdecimalvalueofrecipe.md) * [Refaster template `BigDecimalRules.BigDecimalZero`](./bigdecimalrulesrecipes$bigdecimalzerorecipe.md) +* [Refaster template `BugCheckerRules.ASTHelpersGetStartPosition`](./bugcheckerrulesrecipes$asthelpersgetstartpositionrecipe.md) * [Refaster template `BugCheckerRules.BugCheckerRefactoringTestHelperAddInputLinesExpectUnchanged`](./bugcheckerrulesrecipes$bugcheckerrefactoringtesthelperaddinputlinesexpectunchangedrecipe.md) * [Refaster template `BugCheckerRules.BugCheckerRefactoringTestHelperIdentity`](./bugcheckerrulesrecipes$bugcheckerrefactoringtesthelperidentityrecipe.md) * [Refaster template `BugCheckerRules.NameContentEquals`](./bugcheckerrulesrecipes$namecontentequalsrecipe.md) @@ -351,6 +355,7 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `CollectionRules.CollectionForEach`](./collectionrulesrecipes$collectionforeachrecipe.md) * [Refaster template `CollectionRules.CollectionIsEmpty`](./collectionrulesrecipes$collectionisemptyrecipe.md) * [Refaster template `CollectionRules.CollectionIterator`](./collectionrulesrecipes$collectioniteratorrecipe.md) +* [Refaster template `CollectionRules.CollectionIteratorNext`](./collectionrulesrecipes$collectioniteratornextrecipe.md) * [Refaster template `CollectionRules.CollectionRemoveAllFromCollectionExpression`](./collectionrulesrecipes$collectionremoveallfromcollectionexpressionrecipe.md) * [Refaster template `CollectionRules.CollectionSize`](./collectionrulesrecipes$collectionsizerecipe.md) * [Refaster template `CollectionRules.CollectionToArray`](./collectionrulesrecipes$collectiontoarrayrecipe.md) @@ -361,10 +366,18 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `CollectionRules.ImmutableCollectionToArrayWithArray`](./collectionrulesrecipes$immutablecollectiontoarraywitharrayrecipe.md) * [Refaster template `CollectionRules.ImmutableCollectionToArrayWithGenerator`](./collectionrulesrecipes$immutablecollectiontoarraywithgeneratorrecipe.md) * [Refaster template `CollectionRules.ImmutableCollectionToString`](./collectionrulesrecipes$immutablecollectiontostringrecipe.md) +* [Refaster template `CollectionRules.ListAdd`](./collectionrulesrecipes$listaddrecipe.md) +* [Refaster template `CollectionRules.ListAddFirst`](./collectionrulesrecipes$listaddfirstrecipe.md) +* [Refaster template `CollectionRules.ListRemoveFirst`](./collectionrulesrecipes$listremovefirstrecipe.md) +* [Refaster template `CollectionRules.ListRemoveLast`](./collectionrulesrecipes$listremovelastrecipe.md) * [Refaster template `CollectionRules.NewArrayListFromCollection`](./collectionrulesrecipes$newarraylistfromcollectionrecipe.md) * [Refaster template `CollectionRules.OptionalFirstCollectionElement`](./collectionrulesrecipes$optionalfirstcollectionelementrecipe.md) * [Refaster template `CollectionRules.RemoveOptionalFirstNavigableSetElement`](./collectionrulesrecipes$removeoptionalfirstnavigablesetelementrecipe.md) +* [Refaster template `CollectionRules.SequencedCollectionGetFirst`](./collectionrulesrecipes$sequencedcollectiongetfirstrecipe.md) +* [Refaster template `CollectionRules.SequencedCollectionGetLast`](./collectionrulesrecipes$sequencedcollectiongetlastrecipe.md) * [Refaster template `CollectionRules.SetStream`](./collectionrulesrecipes$setstreamrecipe.md) +* [Refaster template `CollectionRules.SortedSetFirst`](./collectionrulesrecipes$sortedsetfirstrecipe.md) +* [Refaster template `CollectionRules.SortedSetLast`](./collectionrulesrecipes$sortedsetlastrecipe.md) * [Refaster template `ComparatorRules.CollectionsMax`](./comparatorrulesrecipes$collectionsmaxrecipe.md) * [Refaster template `ComparatorRules.CollectionsMaxWithComparator`](./comparatorrulesrecipes$collectionsmaxwithcomparatorrecipe.md) * [Refaster template `ComparatorRules.CollectionsMin`](./comparatorrulesrecipes$collectionsminrecipe.md) @@ -576,8 +589,18 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `JUnitToAssertJRules.FailWithMessage`](./junittoassertjrulesrecipes$failwithmessagerecipe.md) * [Refaster template `JUnitToAssertJRules.FailWithMessageAndThrowable`](./junittoassertjrulesrecipes$failwithmessageandthrowablerecipe.md) * [Refaster template `JUnitToAssertJRules.FailWithThrowable`](./junittoassertjrulesrecipes$failwiththrowablerecipe.md) -* [Refaster template `JacksonRules.JsonNodeOptionalInt`](./jacksonrulesrecipes$jsonnodeoptionalintrecipe.md) -* [Refaster template `JacksonRules.JsonNodeOptionalString`](./jacksonrulesrecipes$jsonnodeoptionalstringrecipe.md) +* [Refaster template `Jackson2Rules.JsonNodeOptionalInt`](./jackson2rulesrecipes$jsonnodeoptionalintrecipe.md) +* [Refaster template `Jackson2Rules.JsonNodeOptionalString`](./jackson2rulesrecipes$jsonnodeoptionalstringrecipe.md) +* [Refaster template `Jackson2Rules.ObjectMapperConvertValueWithClass`](./jackson2rulesrecipes$objectmapperconvertvaluewithclassrecipe.md) +* [Refaster template `Jackson2Rules.ObjectMapperConvertValueWithJavaType`](./jackson2rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md) +* [Refaster template `Jackson2Rules.ObjectMapperConvertValueWithTypeReference`](./jackson2rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md) +* [Refaster template `Jackson2Rules.ObjectMapperValueToTree`](./jackson2rulesrecipes$objectmappervaluetotreerecipe.md) +* [Refaster template `Jackson3Rules.JsonNodeOptionalInt`](./jackson3rulesrecipes$jsonnodeoptionalintrecipe.md) +* [Refaster template `Jackson3Rules.JsonNodeOptionalString`](./jackson3rulesrecipes$jsonnodeoptionalstringrecipe.md) +* [Refaster template `Jackson3Rules.ObjectMapperConvertValueWithClass`](./jackson3rulesrecipes$objectmapperconvertvaluewithclassrecipe.md) +* [Refaster template `Jackson3Rules.ObjectMapperConvertValueWithJavaType`](./jackson3rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md) +* [Refaster template `Jackson3Rules.ObjectMapperConvertValueWithTypeReference`](./jackson3rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md) +* [Refaster template `Jackson3Rules.ObjectMapperValueToTree`](./jackson3rulesrecipes$objectmappervaluetotreerecipe.md) * [Refaster template `LongStreamRules.ConcatOneLongStream`](./longstreamrulesrecipes$concatonelongstreamrecipe.md) * [Refaster template `LongStreamRules.ConcatTwoLongStreams`](./longstreamrulesrecipes$concattwolongstreamsrecipe.md) * [Refaster template `LongStreamRules.LongStreamAllMatch`](./longstreamrulesrecipes$longstreamallmatchrecipe.md) @@ -682,6 +705,8 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `ReactorRules.FluxCollectToImmutableSet`](./reactorrulesrecipes$fluxcollecttoimmutablesetrecipe.md) * [Refaster template `ReactorRules.FluxDefaultIfEmpty`](./reactorrulesrecipes$fluxdefaultifemptyrecipe.md) * [Refaster template `ReactorRules.FluxDeferredError`](./reactorrulesrecipes$fluxdeferrederrorrecipe.md) +* [Refaster template `ReactorRules.FluxDistinctSort`](./reactorrulesrecipes$fluxdistinctsortrecipe.md) +* [Refaster template `ReactorRules.FluxDistinctSortWithComparator`](./reactorrulesrecipes$fluxdistinctsortwithcomparatorrecipe.md) * [Refaster template `ReactorRules.FluxDoOnError`](./reactorrulesrecipes$fluxdoonerrorrecipe.md) * [Refaster template `ReactorRules.FluxErrorSupplier`](./reactorrulesrecipes$fluxerrorsupplierrecipe.md) * [Refaster template `ReactorRules.FluxFilterSort`](./reactorrulesrecipes$fluxfiltersortrecipe.md) @@ -692,7 +717,6 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `ReactorRules.FluxMapNotNullOrElse`](./reactorrulesrecipes$fluxmapnotnullorelserecipe.md) * [Refaster template `ReactorRules.FluxNext`](./reactorrulesrecipes$fluxnextrecipe.md) * [Refaster template `ReactorRules.FluxOfType`](./reactorrulesrecipes$fluxoftyperecipe.md) -* [Refaster template `ReactorRules.FluxOnErrorComplete`](./reactorrulesrecipes$fluxonerrorcompleterecipe.md) * [Refaster template `ReactorRules.FluxOnErrorCompletePredicate`](./reactorrulesrecipes$fluxonerrorcompletepredicaterecipe.md) * [Refaster template `ReactorRules.FluxOnErrorContinue`](./reactorrulesrecipes$fluxonerrorcontinuerecipe.md) * [Refaster template `ReactorRules.FluxOnErrorMap`](./reactorrulesrecipes$fluxonerrormaprecipe.md) @@ -790,11 +814,15 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `RxJava2AdapterRules.MonoToSingle`](./rxjava2adapterrulesrecipes$monotosinglerecipe.md) * [Refaster template `RxJava2AdapterRules.ObservableToFlux`](./rxjava2adapterrulesrecipes$observabletofluxrecipe.md) * [Refaster template `RxJava2AdapterRules.SingleToMono`](./rxjava2adapterrulesrecipes$singletomonorecipe.md) +* [Refaster template `SpringTestRules.BodyContentSpecJsonLenient`](./springtestrulesrecipes$bodycontentspecjsonlenientrecipe.md) +* [Refaster template `SpringTestRules.BodyContentSpecJsonStrict`](./springtestrulesrecipes$bodycontentspecjsonstrictrecipe.md) * [Refaster template `StreamRules.CollectionParallelStream`](./streamrulesrecipes$collectionparallelstreamrecipe.md) * [Refaster template `StreamRules.ConcatOneStream`](./streamrulesrecipes$concatonestreamrecipe.md) * [Refaster template `StreamRules.ConcatTwoStreams`](./streamrulesrecipes$concattwostreamsrecipe.md) * [Refaster template `StreamRules.Joining`](./streamrulesrecipes$joiningrecipe.md) * [Refaster template `StreamRules.StreamCount`](./streamrulesrecipes$streamcountrecipe.md) +* [Refaster template `StreamRules.StreamDistinctSorted`](./streamrulesrecipes$streamdistinctsortedrecipe.md) +* [Refaster template `StreamRules.StreamDistinctSortedWithComparator`](./streamrulesrecipes$streamdistinctsortedwithcomparatorrecipe.md) * [Refaster template `StreamRules.StreamFilterCollect`](./streamrulesrecipes$streamfiltercollectrecipe.md) * [Refaster template `StreamRules.StreamFilterSorted`](./streamrulesrecipes$streamfiltersortedrecipe.md) * [Refaster template `StreamRules.StreamFilterSortedWithComparator`](./streamrulesrecipes$streamfiltersortedwithcomparatorrecipe.md) @@ -829,8 +857,10 @@ _Recipes that include further recipes, often including the individual recipes be * [Refaster template `StringRules.NewStringFromCharArraySubSequence`](./stringrulesrecipes$newstringfromchararraysubsequencerecipe.md) * [Refaster template `StringRules.OptionalNonEmptyString`](./stringrulesrecipes$optionalnonemptystringrecipe.md) * [Refaster template `StringRules.StringIdentity`](./stringrulesrecipes$stringidentityrecipe.md) -* [Refaster template `StringRules.StringIndexOfChar`](./stringrulesrecipes$stringindexofcharrecipe.md) -* [Refaster template `StringRules.StringIndexOfString`](./stringrulesrecipes$stringindexofstringrecipe.md) +* [Refaster template `StringRules.StringIndexOfCharBetweenIndices`](./stringrulesrecipes$stringindexofcharbetweenindicesrecipe.md) +* [Refaster template `StringRules.StringIndexOfCharFromIndex`](./stringrulesrecipes$stringindexofcharfromindexrecipe.md) +* [Refaster template `StringRules.StringIndexOfStringBetweenIndices`](./stringrulesrecipes$stringindexofstringbetweenindicesrecipe.md) +* [Refaster template `StringRules.StringIndexOfStringFromIndex`](./stringrulesrecipes$stringindexofstringfromindexrecipe.md) * [Refaster template `StringRules.StringIsBlank`](./stringrulesrecipes$stringisblankrecipe.md) * [Refaster template `StringRules.StringIsEmpty`](./stringrulesrecipes$stringisemptyrecipe.md) * [Refaster template `StringRules.StringIsEmptyPredicate`](./stringrulesrecipes$stringisemptypredicaterecipe.md) diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/assertjdurationrulesrecipes$assertthatispositiverecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/assertjdurationrulesrecipes$assertthatispositiverecipe.md index 2e087b3c49..4c1d410666 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/assertjdurationrulesrecipes$assertthatispositiverecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/assertjdurationrulesrecipes$assertthatispositiverecipe.md @@ -14,7 +14,12 @@ Recipe created for the following Refaster template: static final class AssertThatIsPositive { @BeforeTemplate - AbstractDurationAssert before(Duration duration) { + AbstractBooleanAssert before(Duration duration) { + return assertThat(duration.isPositive()).isTrue(); + } + + @BeforeTemplate + AbstractDurationAssert before2(Duration duration) { return assertThat(duration).isGreaterThan(Duration.ZERO); } diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimaltworecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimaltworecipe.md new file mode 100644 index 0000000000..5ebf65c6f7 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimaltworecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `BigDecimalRules.BigDecimalTwo`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `BigDecimalRules.BigDecimalTwo` + +**tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe** + +_Prefer using the constant `BigDecimal#TWO` when possible._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`BigDecimalRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe BigDecimalRulesRecipes$BigDecimalTwoRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes.md index 7a7dc08956..527e68626b 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes.md @@ -30,6 +30,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `BigDecimalRules.BigDecimalZero`](../../../../tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimalzerorecipe) * [Refaster template `BigDecimalRules.BigDecimalOne`](../../../../tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimalonerecipe) +* [Refaster template `BigDecimalRules.BigDecimalTwo`](../../../../tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimaltworecipe) * [Refaster template `BigDecimalRules.BigDecimalTen`](../../../../tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimaltenrecipe) * [Refaster template `BigDecimalRules.BigDecimalValueOf`](../../../../tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimalvalueofrecipe) * [Refaster template `BigDecimalRules.BigDecimalSignumIsZero`](../../../../tech/picnic/errorprone/refasterrules/bigdecimalrulesrecipes$bigdecimalsignumiszerorecipe) @@ -50,6 +51,7 @@ description: | recipeList: - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalZeroRecipe - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalOneRecipe + - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTwoRecipe - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalTenRecipe - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalValueOfRecipe - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes$BigDecimalSignumIsZeroRecipe diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$asthelpersgetstartpositionrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$asthelpersgetstartpositionrecipe.md new file mode 100644 index 0000000000..82e70f7318 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$asthelpersgetstartpositionrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `BugCheckerRules.ASTHelpersGetStartPosition`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `BugCheckerRules.ASTHelpersGetStartPosition` + +**tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe** + +_Prefer `ASTHelpers#getStartPosition(Tree)` over alternatives that require casting._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`BugCheckerRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes.md index ba208d1eaa..cfa23c20d3 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes.md @@ -31,6 +31,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `BugCheckerRules.BugCheckerRefactoringTestHelperIdentity`](../../../../tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$bugcheckerrefactoringtesthelperidentityrecipe) * [Refaster template `BugCheckerRules.BugCheckerRefactoringTestHelperAddInputLinesExpectUnchanged`](../../../../tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$bugcheckerrefactoringtesthelperaddinputlinesexpectunchangedrecipe) * [Refaster template `BugCheckerRules.NameContentEquals`](../../../../tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$namecontentequalsrecipe) +* [Refaster template `BugCheckerRules.ASTHelpersGetStartPosition`](../../../../tech/picnic/errorprone/refasterrules/bugcheckerrulesrecipes$asthelpersgetstartpositionrecipe) @@ -47,6 +48,7 @@ recipeList: - tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$BugCheckerRefactoringTestHelperIdentityRecipe - tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$BugCheckerRefactoringTestHelperAddInputLinesExpectUnchangedRecipe - tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$NameContentEqualsRecipe + - tech.picnic.errorprone.refasterrules.BugCheckerRulesRecipes$ASTHelpersGetStartPositionRecipe ``` diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$collectioniteratornextrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$collectioniteratornextrecipe.md new file mode 100644 index 0000000000..e8b9bdab9b --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$collectioniteratornextrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.CollectionIteratorNext`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.CollectionIteratorNext` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe** + +_Prefer `collection.iterator().next()` over more contrived alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$CollectionIteratorNextRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddfirstrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddfirstrecipe.md new file mode 100644 index 0000000000..134bb2143e --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddfirstrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.ListAddFirst`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.ListAddFirst` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe** + +_Prefer `List#addFirst(Object)` over less idiomatic alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$ListAddFirstRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddrecipe.md new file mode 100644 index 0000000000..9a2520969e --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.ListAdd`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.ListAdd` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe** + +_Prefer `List#add(Object)` over less idiomatic alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$ListAddRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovefirstrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovefirstrecipe.md new file mode 100644 index 0000000000..e1550dbd5c --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovefirstrecipe.md @@ -0,0 +1,220 @@ +--- +sidebar_label: "Refaster template `CollectionRules.ListRemoveFirst`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.ListRemoveFirst` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe** + +``` +Prefer `List#removeFirst()`} over less idiomatic alternatives. +``` + + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$ListRemoveFirstRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovelastrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovelastrecipe.md new file mode 100644 index 0000000000..85752a0249 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovelastrecipe.md @@ -0,0 +1,220 @@ +--- +sidebar_label: "Refaster template `CollectionRules.ListRemoveLast`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.ListRemoveLast` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe** + +``` +Prefer `List#removeLast()`} over less idiomatic alternatives. +``` + + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$ListRemoveLastRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetfirstrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetfirstrecipe.md new file mode 100644 index 0000000000..c29f876552 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetfirstrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.SequencedCollectionGetFirst`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.SequencedCollectionGetFirst` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe** + +_Prefer `SequencedCollection#getFirst()` over less idiomatic alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$SequencedCollectionGetFirstRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetlastrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetlastrecipe.md new file mode 100644 index 0000000000..83517e66c3 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetlastrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.SequencedCollectionGetLast`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.SequencedCollectionGetLast` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe** + +_Prefer `SequencedCollection#getLast()` over less idiomatic alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$SequencedCollectionGetLastRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetfirstrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetfirstrecipe.md new file mode 100644 index 0000000000..3857f0f520 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetfirstrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.SortedSetFirst`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.SortedSetFirst` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe** + +_Prefer `SortedSet#first()` over more verbose alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$SortedSetFirstRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetlastrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetlastrecipe.md new file mode 100644 index 0000000000..ef1a1bdcb2 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetlastrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `CollectionRules.SortedSetLast`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `CollectionRules.SortedSetLast` + +**tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe** + +_Prefer `SortedSet#last()` over more verbose alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`CollectionRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe CollectionRulesRecipes$SortedSetLastRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md index 82e4ac404b..40dc0bc7dc 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/collectionrulesrecipes.md @@ -47,6 +47,15 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `CollectionRules.OptionalFirstCollectionElement`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$optionalfirstcollectionelementrecipe) * [Refaster template `CollectionRules.RemoveOptionalFirstNavigableSetElement`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$removeoptionalfirstnavigablesetelementrecipe) * [Refaster template `CollectionRules.CollectionForEach`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$collectionforeachrecipe) +* [Refaster template `CollectionRules.CollectionIteratorNext`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$collectioniteratornextrecipe) +* [Refaster template `CollectionRules.SequencedCollectionGetFirst`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetfirstrecipe) +* [Refaster template `CollectionRules.SequencedCollectionGetLast`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sequencedcollectiongetlastrecipe) +* [Refaster template `CollectionRules.ListAddFirst`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddfirstrecipe) +* [Refaster template `CollectionRules.ListAdd`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listaddrecipe) +* [Refaster template `CollectionRules.ListRemoveFirst`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovefirstrecipe) +* [Refaster template `CollectionRules.ListRemoveLast`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$listremovelastrecipe) +* [Refaster template `CollectionRules.SortedSetFirst`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetfirstrecipe) +* [Refaster template `CollectionRules.SortedSetLast`](../../../../tech/picnic/errorprone/refasterrules/collectionrulesrecipes$sortedsetlastrecipe) @@ -79,6 +88,15 @@ recipeList: - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$OptionalFirstCollectionElementRecipe - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$RemoveOptionalFirstNavigableSetElementRecipe - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionForEachRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$CollectionIteratorNextRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetFirstRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SequencedCollectionGetLastRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddFirstRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListAddRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveFirstRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$ListRemoveLastRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetFirstRecipe + - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes$SortedSetLastRecipe ``` diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalintrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalintrecipe.md similarity index 89% rename from docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalintrecipe.md rename to docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalintrecipe.md index 9e9297a33f..b09508eb89 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalintrecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalintrecipe.md @@ -1,19 +1,19 @@ --- -sidebar_label: "Refaster template `JacksonRules.JsonNodeOptionalInt`" +sidebar_label: "Refaster template `Jackson2Rules.JsonNodeOptionalInt`" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Refaster template `JacksonRules.JsonNodeOptionalInt` +# Refaster template `Jackson2Rules.JsonNodeOptionalInt` -**tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe** +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe** _Prefer `JsonNode#optional(int)` over more contrived alternatives._ ## Recipe source -[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe), +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe), [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) @@ -24,7 +24,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: -* [`JacksonRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes.md) +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) ## Usage @@ -41,7 +41,7 @@ plugins { } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe") setExportDatatables(true) } @@ -74,7 +74,7 @@ rootProject { rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe") setExportDatatables(true) } afterEvaluate { @@ -109,7 +109,7 @@ gradle --init-script init.gradle rewriteRun true - tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe @@ -132,7 +132,7 @@ gradle --init-script init.gradle rewriteRun You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. ```shell title="shell" -mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe -Drewrite.exportDatatables=true +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe -Drewrite.exportDatatables=true ``` @@ -140,7 +140,7 @@ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCo You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe JacksonRulesRecipes$JsonNodeOptionalIntRecipe +mod run . --recipe Jackson2RulesRecipes$JsonNodeOptionalIntRecipe ``` If the recipe is not available locally, then you can install it using: @@ -154,7 +154,7 @@ mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERS 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/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalstringrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalstringrecipe.md similarity index 89% rename from docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalstringrecipe.md rename to docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalstringrecipe.md index aeb7f2de94..fcb677d2aa 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalstringrecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalstringrecipe.md @@ -1,19 +1,19 @@ --- -sidebar_label: "Refaster template `JacksonRules.JsonNodeOptionalString`" +sidebar_label: "Refaster template `Jackson2Rules.JsonNodeOptionalString`" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Refaster template `JacksonRules.JsonNodeOptionalString` +# Refaster template `Jackson2Rules.JsonNodeOptionalString` -**tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe** +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe** _Prefer `JsonNode#optional(String)` over more contrived alternatives._ ## Recipe source -[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe), +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe), [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) @@ -24,7 +24,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: -* [`JacksonRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes.md) +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) ## Usage @@ -41,7 +41,7 @@ plugins { } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe") setExportDatatables(true) } @@ -74,7 +74,7 @@ rootProject { rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe") setExportDatatables(true) } afterEvaluate { @@ -109,7 +109,7 @@ gradle --init-script init.gradle rewriteRun true - tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe @@ -132,7 +132,7 @@ gradle --init-script init.gradle rewriteRun You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. ```shell title="shell" -mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe -Drewrite.exportDatatables=true +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe -Drewrite.exportDatatables=true ``` @@ -140,7 +140,7 @@ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCo You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe JacksonRulesRecipes$JsonNodeOptionalStringRecipe +mod run . --recipe Jackson2RulesRecipes$JsonNodeOptionalStringRecipe ``` If the recipe is not available locally, then you can install it using: @@ -154,7 +154,7 @@ mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERS 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/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithclassrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithclassrecipe.md new file mode 100644 index 0000000000..075ddc249a --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithclassrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson2Rules.ObjectMapperConvertValueWithClass`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson2Rules.ObjectMapperConvertValueWithClass` + +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe** + +_Prefer `ObjectMapper#convertValue(Object, Class)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md new file mode 100644 index 0000000000..8fe911d78f --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson2Rules.ObjectMapperConvertValueWithJavaType`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson2Rules.ObjectMapperConvertValueWithJavaType` + +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe** + +_Prefer `ObjectMapper#convertValue(Object, JavaType)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md new file mode 100644 index 0000000000..6fb2d18219 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson2Rules.ObjectMapperConvertValueWithTypeReference`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson2Rules.ObjectMapperConvertValueWithTypeReference` + +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe** + +_Prefer `ObjectMapper#convertValue(Object, TypeReference)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmappervaluetotreerecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmappervaluetotreerecipe.md new file mode 100644 index 0000000000..80785148db --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmappervaluetotreerecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson2Rules.ObjectMapperValueToTree`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson2Rules.ObjectMapperValueToTree` + +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe** + +_Prefer `ObjectMapper#valueToTree(Object)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md new file mode 100644 index 0000000000..9e603b7024 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md @@ -0,0 +1,248 @@ +--- +sidebar_label: "`Jackson2Rules` Refaster recipes" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# `Jackson2Rules` Refaster recipes + +**tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes** + +_Refaster rules related to Jackson 2.x expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/Jackson2Rules)._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes), +[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 + + + +* [Refaster template `Jackson2Rules.JsonNodeOptionalInt`](../../../../tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalintrecipe) +* [Refaster template `Jackson2Rules.JsonNodeOptionalString`](../../../../tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$jsonnodeoptionalstringrecipe) +* [Refaster template `Jackson2Rules.ObjectMapperValueToTree`](../../../../tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmappervaluetotreerecipe) +* [Refaster template `Jackson2Rules.ObjectMapperConvertValueWithClass`](../../../../tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithclassrecipe) +* [Refaster template `Jackson2Rules.ObjectMapperConvertValueWithJavaType`](../../../../tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithjavatyperecipe) +* [Refaster template `Jackson2Rules.ObjectMapperConvertValueWithTypeReference`](../../../../tech/picnic/errorprone/refasterrules/jackson2rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe) + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes +displayName: `Jackson2Rules` Refaster recipes +description: | + Refaster rules related to Jackson 2.x expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/Jackson2Rules). +recipeList: + - tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalIntRecipe + - tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$JsonNodeOptionalStringRecipe + - tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperValueToTreeRecipe + - tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithClassRecipe + - tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe + - tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe + +``` + + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson2RulesRecipes -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson2RulesRecipes +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalintrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalintrecipe.md new file mode 100644 index 0000000000..93d921e81f --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalintrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson3Rules.JsonNodeOptionalInt`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson3Rules.JsonNodeOptionalInt` + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe** + +_Prefer `JsonNode#optional(int)` over more contrived alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes$JsonNodeOptionalIntRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalstringrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalstringrecipe.md new file mode 100644 index 0000000000..86bf8be9f5 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalstringrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson3Rules.JsonNodeOptionalString`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson3Rules.JsonNodeOptionalString` + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe** + +_Prefer `JsonNode#optional(String)` over more contrived alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes$JsonNodeOptionalStringRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithclassrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithclassrecipe.md new file mode 100644 index 0000000000..d5f3d56247 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithclassrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson3Rules.ObjectMapperConvertValueWithClass`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson3Rules.ObjectMapperConvertValueWithClass` + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe** + +_Prefer `ObjectMapper#convertValue(Object, Class)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md new file mode 100644 index 0000000000..c5bc71ea20 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithjavatyperecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson3Rules.ObjectMapperConvertValueWithJavaType`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson3Rules.ObjectMapperConvertValueWithJavaType` + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe** + +_Prefer `ObjectMapper#convertValue(Object, JavaType)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md new file mode 100644 index 0000000000..d7bae675d7 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson3Rules.ObjectMapperConvertValueWithTypeReference`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson3Rules.ObjectMapperConvertValueWithTypeReference` + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe** + +_Prefer `ObjectMapper#convertValue(Object, TypeReference)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmappervaluetotreerecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmappervaluetotreerecipe.md new file mode 100644 index 0000000000..225a390e6b --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmappervaluetotreerecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `Jackson3Rules.ObjectMapperValueToTree`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `Jackson3Rules.ObjectMapperValueToTree` + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe** + +_Prefer `ObjectMapper#valueToTree(Object)` over more contrived and less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md new file mode 100644 index 0000000000..c3e1f7b27b --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md @@ -0,0 +1,248 @@ +--- +sidebar_label: "`Jackson3Rules` Refaster recipes" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# `Jackson3Rules` Refaster recipes + +**tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes** + +_Refaster rules related to Jackson 3.x expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/Jackson3Rules)._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes), +[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 + + + +* [Refaster template `Jackson3Rules.JsonNodeOptionalInt`](../../../../tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalintrecipe) +* [Refaster template `Jackson3Rules.JsonNodeOptionalString`](../../../../tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$jsonnodeoptionalstringrecipe) +* [Refaster template `Jackson3Rules.ObjectMapperValueToTree`](../../../../tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmappervaluetotreerecipe) +* [Refaster template `Jackson3Rules.ObjectMapperConvertValueWithClass`](../../../../tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithclassrecipe) +* [Refaster template `Jackson3Rules.ObjectMapperConvertValueWithJavaType`](../../../../tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithjavatyperecipe) +* [Refaster template `Jackson3Rules.ObjectMapperConvertValueWithTypeReference`](../../../../tech/picnic/errorprone/refasterrules/jackson3rulesrecipes$objectmapperconvertvaluewithtypereferencerecipe) + + + + + +```yaml +--- +type: specs.openrewrite.org/v1beta/recipe +name: tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes +displayName: `Jackson3Rules` Refaster recipes +description: | + Refaster rules related to Jackson 3.x expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/Jackson3Rules). +recipeList: + - tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalIntRecipe + - tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$JsonNodeOptionalStringRecipe + - tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperValueToTreeRecipe + - tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithClassRecipe + - tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithJavaTypeRecipe + - tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes$ObjectMapperConvertValueWithTypeReferenceRecipe + +``` + + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.Jackson3RulesRecipes -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe Jackson3RulesRecipes +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxonerrorcompleterecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortrecipe.md similarity index 91% rename from docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxonerrorcompleterecipe.md rename to docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortrecipe.md index 16ee38ae6a..24a1520dbe 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxonerrorcompleterecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortrecipe.md @@ -1,19 +1,19 @@ --- -sidebar_label: "Refaster template `ReactorRules.FluxOnErrorComplete`" +sidebar_label: "Refaster template `ReactorRules.FluxDistinctSort`" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Refaster template `ReactorRules.FluxOnErrorComplete` +# Refaster template `ReactorRules.FluxDistinctSort` -**tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe** +**tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe** -_Prefer `Flux#onErrorComplete()` over more contrived alternatives._ +_Apply `Flux#distinct()` before `Flux#sort()` to reduce the number of elements to sort._ ## Recipe source -[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe), +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe), [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) @@ -41,7 +41,7 @@ plugins { } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe") setExportDatatables(true) } @@ -74,7 +74,7 @@ rootProject { rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe") setExportDatatables(true) } afterEvaluate { @@ -109,7 +109,7 @@ gradle --init-script init.gradle rewriteRun true - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe + tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe @@ -132,7 +132,7 @@ gradle --init-script init.gradle rewriteRun You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. ```shell title="shell" -mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe -Drewrite.exportDatatables=true +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe -Drewrite.exportDatatables=true ``` @@ -140,7 +140,7 @@ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCo You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe ReactorRulesRecipes$FluxOnErrorCompleteRecipe +mod run . --recipe ReactorRulesRecipes$FluxDistinctSortRecipe ``` If the recipe is not available locally, then you can install it using: @@ -154,7 +154,7 @@ mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERS 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/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortwithcomparatorrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortwithcomparatorrecipe.md new file mode 100644 index 0000000000..0a07d7caaf --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortwithcomparatorrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `ReactorRules.FluxDistinctSortWithComparator`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `ReactorRules.FluxDistinctSortWithComparator` + +**tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe** + +_Apply `Flux#distinct()` before `Flux#sort(Comparator)` to reduce the number of elements to sort._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`ReactorRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompleterecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompleterecipe.md index 998be9cdd8..6b862ffeb8 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompleterecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompleterecipe.md @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem'; **tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$MonoOnErrorCompleteRecipe** -_Prefer `Mono#onErrorComplete()` over more contrived alternatives._ +_Prefer `Mono#onErrorComplete()` over more contrived alternatives, and don't chain it with redundant calls to `Mono#doOnError`._ ## Recipe source diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes.md index 91e67865ff..330720cb6b 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/reactorrulesrecipes.md @@ -82,7 +82,6 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `ReactorRules.MonoDoOnError`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monodoonerrorrecipe) * [Refaster template `ReactorRules.FluxDoOnError`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdoonerrorrecipe) * [Refaster template `ReactorRules.MonoOnErrorComplete`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompleterecipe) -* [Refaster template `ReactorRules.FluxOnErrorComplete`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxonerrorcompleterecipe) * [Refaster template `ReactorRules.MonoOnErrorCompleteClass`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompleteclassrecipe) * [Refaster template `ReactorRules.MonoOnErrorCompletePredicate`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$monoonerrorcompletepredicaterecipe) * [Refaster template `ReactorRules.FluxOnErrorCompletePredicate`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxonerrorcompletepredicaterecipe) @@ -96,6 +95,8 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `ReactorRules.FluxOnErrorReturn`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxonerrorreturnrecipe) * [Refaster template `ReactorRules.FluxFilterSort`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxfiltersortrecipe) * [Refaster template `ReactorRules.FluxFilterSortWithComparator`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxfiltersortwithcomparatorrecipe) +* [Refaster template `ReactorRules.FluxDistinctSort`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortrecipe) +* [Refaster template `ReactorRules.FluxDistinctSortWithComparator`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxdistinctsortwithcomparatorrecipe) * [Refaster template `ReactorRules.FluxTakeWhile`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxtakewhilerecipe) * [Refaster template `ReactorRules.FluxCollectToImmutableList`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxcollecttoimmutablelistrecipe) * [Refaster template `ReactorRules.FluxCollectToImmutableSet`](../../../../tech/picnic/errorprone/refasterrules/reactorrulesrecipes$fluxcollecttoimmutablesetrecipe) @@ -201,7 +202,6 @@ recipeList: - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$MonoDoOnErrorRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDoOnErrorRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$MonoOnErrorCompleteRecipe - - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompleteRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$MonoOnErrorCompleteClassRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$MonoOnErrorCompletePredicateRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorCompletePredicateRecipe @@ -215,6 +215,8 @@ recipeList: - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxOnErrorReturnRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxFilterSortRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxFilterSortWithComparatorRecipe + - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortRecipe + - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxDistinctSortWithComparatorRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxTakeWhileRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxCollectToImmutableListRecipe - tech.picnic.errorprone.refasterrules.ReactorRulesRecipes$FluxCollectToImmutableSetRecipe diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonlenientrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonlenientrecipe.md new file mode 100644 index 0000000000..b836f5018f --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonlenientrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `SpringTestRules.BodyContentSpecJsonLenient`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `SpringTestRules.BodyContentSpecJsonLenient` + +**tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe** + +_Prefer `BodyContentSpec#json(String, JsonCompareMode)` over alternatives that implicitly perform a `JsonCompareMode#LENIENT lenient` comparison or are deprecated._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`SpringTestRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonstrictrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonstrictrecipe.md new file mode 100644 index 0000000000..5be4b2af41 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonstrictrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `SpringTestRules.BodyContentSpecJsonStrict`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `SpringTestRules.BodyContentSpecJsonStrict` + +**tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe** + +_Prefer `BodyContentSpec#json(String, JsonCompareMode)` over the deprecated alternative._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`SpringTestRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes.md similarity index 82% rename from docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes.md rename to docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes.md index 0cf0e04612..33a809978f 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/jacksonrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/springtestrulesrecipes.md @@ -1,19 +1,19 @@ --- -sidebar_label: "`JacksonRules` Refaster recipes" +sidebar_label: "`SpringTestRules` Refaster recipes" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# `JacksonRules` Refaster recipes +# `SpringTestRules` Refaster recipes -**tech.picnic.errorprone.refasterrules.JacksonRulesRecipes** +**tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes** -_Refaster rules related to Jackson expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/JacksonRules)._ +_Refaster rules related to Spring Test expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/SpringTestRules)._ ## Recipe source -[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.JacksonRulesRecipes), +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes), [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) @@ -28,8 +28,8 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac -* [Refaster template `JacksonRules.JsonNodeOptionalInt`](../../../../tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalintrecipe) -* [Refaster template `JacksonRules.JsonNodeOptionalString`](../../../../tech/picnic/errorprone/refasterrules/jacksonrulesrecipes$jsonnodeoptionalstringrecipe) +* [Refaster template `SpringTestRules.BodyContentSpecJsonLenient`](../../../../tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonlenientrecipe) +* [Refaster template `SpringTestRules.BodyContentSpecJsonStrict`](../../../../tech/picnic/errorprone/refasterrules/springtestrulesrecipes$bodycontentspecjsonstrictrecipe) @@ -38,13 +38,13 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac ```yaml --- type: specs.openrewrite.org/v1beta/recipe -name: tech.picnic.errorprone.refasterrules.JacksonRulesRecipes -displayName: `JacksonRules` Refaster recipes +name: tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes +displayName: `SpringTestRules` Refaster recipes description: | - Refaster rules related to Jackson expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/JacksonRules). + Refaster rules related to Spring Test expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/SpringTestRules). recipeList: - - tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalIntRecipe - - tech.picnic.errorprone.refasterrules.JacksonRulesRecipes$JsonNodeOptionalStringRecipe + - tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonLenientRecipe + - tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes$BodyContentSpecJsonStrictRecipe ``` @@ -71,7 +71,7 @@ plugins { } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.JacksonRulesRecipes") + activeRecipe("tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes") setExportDatatables(true) } @@ -104,7 +104,7 @@ rootProject { rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.JacksonRulesRecipes") + activeRecipe("tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes") setExportDatatables(true) } afterEvaluate { @@ -139,7 +139,7 @@ gradle --init-script init.gradle rewriteRun true - tech.picnic.errorprone.refasterrules.JacksonRulesRecipes + tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes @@ -162,7 +162,7 @@ gradle --init-script init.gradle rewriteRun You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. ```shell title="shell" -mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.JacksonRulesRecipes -Drewrite.exportDatatables=true +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes -Drewrite.exportDatatables=true ``` @@ -170,7 +170,7 @@ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCo You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe JacksonRulesRecipes +mod run . --recipe SpringTestRulesRecipes ``` If the recipe is not available locally, then you can install it using: @@ -184,7 +184,7 @@ mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERS 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/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedrecipe.md new file mode 100644 index 0000000000..628e5dfde7 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `StreamRules.StreamDistinctSorted`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `StreamRules.StreamDistinctSorted` + +**tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe** + +_Apply `Stream#distinct()` before `Stream#sorted()` to reduce the number of elements to sort._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`StreamRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe StreamRulesRecipes$StreamDistinctSortedRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedwithcomparatorrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedwithcomparatorrecipe.md new file mode 100644 index 0000000000..9151c68546 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedwithcomparatorrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `StreamRules.StreamDistinctSortedWithComparator`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `StreamRules.StreamDistinctSortedWithComparator` + +**tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe** + +_Apply `Stream#distinct()` before `Stream#sorted(Comparator)` to reduce the number of elements to sort._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`StreamRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/streamrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes.md index 4df6e5cf25..8eef590d97 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes.md @@ -34,6 +34,8 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `StreamRules.ConcatTwoStreams`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$concattwostreamsrecipe) * [Refaster template `StreamRules.StreamFilterSorted`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamfiltersortedrecipe) * [Refaster template `StreamRules.StreamFilterSortedWithComparator`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamfiltersortedwithcomparatorrecipe) +* [Refaster template `StreamRules.StreamDistinctSorted`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedrecipe) +* [Refaster template `StreamRules.StreamDistinctSortedWithComparator`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamdistinctsortedwithcomparatorrecipe) * [Refaster template `StreamRules.StreamMapFirst`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streammapfirstrecipe) * [Refaster template `StreamRules.StreamFindAnyIsEmpty`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamfindanyisemptyrecipe) * [Refaster template `StreamRules.StreamFindAnyIsPresent`](../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamfindanyispresentrecipe) @@ -79,6 +81,8 @@ recipeList: - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$ConcatTwoStreamsRecipe - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamFilterSortedRecipe - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamFilterSortedWithComparatorRecipe + - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedRecipe + - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamDistinctSortedWithComparatorRecipe - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamMapFirstRecipe - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamFindAnyIsEmptyRecipe - tech.picnic.errorprone.refasterrules.StreamRulesRecipes$StreamFindAnyIsPresentRecipe diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharbetweenindicesrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharbetweenindicesrecipe.md new file mode 100644 index 0000000000..f16ecd1d84 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharbetweenindicesrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `StringRules.StringIndexOfCharBetweenIndices`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `StringRules.StringIndexOfCharBetweenIndices` + +**tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe** + +_Prefer `String#indexOf(int, int, int)` over less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`StringRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharfromindexrecipe.md similarity index 92% rename from docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharrecipe.md rename to docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharfromindexrecipe.md index 1c24104cc5..fba9c8e79a 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharrecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharfromindexrecipe.md @@ -1,13 +1,13 @@ --- -sidebar_label: "Refaster template `StringRules.StringIndexOfChar`" +sidebar_label: "Refaster template `StringRules.StringIndexOfCharFromIndex`" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Refaster template `StringRules.StringIndexOfChar` +# Refaster template `StringRules.StringIndexOfCharFromIndex` -**tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe** +**tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe** _Prefer `String#indexOf(int, int)` over less efficient alternatives._ @@ -17,7 +17,7 @@ _Prefer `String#indexOf(int, int)` over less efficient alternatives._ ## Recipe source -[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe), +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe), [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) @@ -45,7 +45,7 @@ plugins { } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe") setExportDatatables(true) } @@ -78,7 +78,7 @@ rootProject { rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe") setExportDatatables(true) } afterEvaluate { @@ -113,7 +113,7 @@ gradle --init-script init.gradle rewriteRun true - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe @@ -136,7 +136,7 @@ gradle --init-script init.gradle rewriteRun You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. ```shell title="shell" -mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe -Drewrite.exportDatatables=true +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe -Drewrite.exportDatatables=true ``` @@ -144,7 +144,7 @@ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCo You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe StringRulesRecipes$StringIndexOfCharRecipe +mod run . --recipe StringRulesRecipes$StringIndexOfCharFromIndexRecipe ``` If the recipe is not available locally, then you can install it using: @@ -158,7 +158,7 @@ mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERS 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/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringbetweenindicesrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringbetweenindicesrecipe.md new file mode 100644 index 0000000000..70aea1ee45 --- /dev/null +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringbetweenindicesrecipe.md @@ -0,0 +1,217 @@ +--- +sidebar_label: "Refaster template `StringRules.StringIndexOfStringBetweenIndices`" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Refaster template `StringRules.StringIndexOfStringBetweenIndices` + +**tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe** + +_Prefer `String#indexOf(String, int)` over less efficient alternatives._ + +## Recipe source + +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe), +[Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), +[Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) + +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: + +* [`StringRules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes.md) + + +## Usage + +This recipe has no required configuration options. It can be activated by adding a dependency on `org.openrewrite.recipe:rewrite-third-party` in your build file or by running a shell command (in which case no build changes are needed): + + + +1. Add the following to your `build.gradle` file: + +```groovy title="build.gradle" +plugins { + id("org.openrewrite.rewrite") version("latest.release") +} + +rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe") + setExportDatatables(true) +} + +repositories { + mavenCentral() +} + +dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") +} +``` + +2. Run `gradle rewriteRun` to run the recipe. + + + + +1. Create a file named `init.gradle` in the root of your project. + +```groovy title="init.gradle" +initscript { + repositories { + maven { url "https://plugins.gradle.org/m2" } + } + dependencies { classpath("org.openrewrite:plugin:{{VERSION_REWRITE_GRADLE_PLUGIN}}") } +} +rootProject { + plugins.apply(org.openrewrite.gradle.RewritePlugin) + dependencies { + rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") + } + rewrite { + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe") + setExportDatatables(true) + } + afterEvaluate { + if (repositories.isEmpty()) { + repositories { + mavenCentral() + } + } + } +} +``` + +2. Run the recipe. + +```shell title="shell" +gradle --init-script init.gradle rewriteRun +``` + + + + +1. Add the following to your `pom.xml` file: + +```xml title="pom.xml" + + + + + org.openrewrite.maven + rewrite-maven-plugin + {{VERSION_REWRITE_MAVEN_PLUGIN}} + + true + + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe + + + + + org.openrewrite.recipe + rewrite-third-party + {{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} + + + + + + +``` + +2. Run `mvn rewrite:run` to run the recipe. + + + +You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. + +```shell title="shell" +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe -Drewrite.exportDatatables=true +``` + + + +You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. + +```shell title="shell" +mod run . --recipe StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe +``` + +If the recipe is not available locally, then you can install it using: +```shell +mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}} +``` + + + +## 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 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/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringrecipe.md b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringfromindexrecipe.md similarity index 92% rename from docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringrecipe.md rename to docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringfromindexrecipe.md index 8417461d67..d4ac8eedda 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringrecipe.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringfromindexrecipe.md @@ -1,13 +1,13 @@ --- -sidebar_label: "Refaster template `StringRules.StringIndexOfString`" +sidebar_label: "Refaster template `StringRules.StringIndexOfStringFromIndex`" --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Refaster template `StringRules.StringIndexOfString` +# Refaster template `StringRules.StringIndexOfStringFromIndex` -**tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe** +**tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe** _Prefer `String#indexOf(String, int)` over less efficient alternatives._ @@ -17,7 +17,7 @@ _Prefer `String#indexOf(String, int)` over less efficient alternatives._ ## Recipe source -[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe), +[GitHub](https://github.com/search?type=code&q=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe), [Issue Tracker](https://github.com/openrewrite/rewrite-third-party/issues), [Maven Central](https://central.sonatype.com/artifact/org.openrewrite.recipe/rewrite-third-party/) @@ -45,7 +45,7 @@ plugins { } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe") setExportDatatables(true) } @@ -78,7 +78,7 @@ rootProject { rewrite("org.openrewrite.recipe:rewrite-third-party:{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}") } rewrite { - activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe") + activeRecipe("tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe") setExportDatatables(true) } afterEvaluate { @@ -113,7 +113,7 @@ gradle --init-script init.gradle rewriteRun true - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe + tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe @@ -136,7 +136,7 @@ gradle --init-script init.gradle rewriteRun You will need to have [Maven](https://maven.apache.org/download.cgi) installed on your machine before you can run the following command. ```shell title="shell" -mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe -Drewrite.exportDatatables=true +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-third-party:RELEASE -Drewrite.activeRecipes=tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe -Drewrite.exportDatatables=true ``` @@ -144,7 +144,7 @@ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCo You will need to have configured the [Moderne CLI](https://docs.moderne.io/user-documentation/moderne-cli/getting-started/cli-intro) on your machine before you can run the following command. ```shell title="shell" -mod run . --recipe StringRulesRecipes$StringIndexOfStringRecipe +mod run . --recipe StringRulesRecipes$StringIndexOfStringFromIndexRecipe ``` If the recipe is not available locally, then you can install it using: @@ -158,7 +158,7 @@ mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:{{VERS 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/tech/picnic/errorprone/refasterrules/stringrulesrecipes.md b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes.md index 31421b984b..6d3ffb4573 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes.md @@ -44,8 +44,10 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [Refaster template `StringRules.StringValueOfMethodReference`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringvalueofmethodreferencerecipe) * [Refaster template `StringRules.SubstringRemainder`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$substringremainderrecipe) * [Refaster template `StringRules.Utf8EncodedLength`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$utf8encodedlengthrecipe) -* [Refaster template `StringRules.StringIndexOfChar`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharrecipe) -* [Refaster template `StringRules.StringIndexOfString`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringrecipe) +* [Refaster template `StringRules.StringIndexOfCharFromIndex`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharfromindexrecipe) +* [Refaster template `StringRules.StringIndexOfCharBetweenIndices`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharbetweenindicesrecipe) +* [Refaster template `StringRules.StringIndexOfStringFromIndex`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringfromindexrecipe) +* [Refaster template `StringRules.StringIndexOfStringBetweenIndices`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringbetweenindicesrecipe) * [Refaster template `StringRules.StringLastIndexOfChar`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringlastindexofcharrecipe) * [Refaster template `StringRules.StringLastIndexOfString`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringlastindexofstringrecipe) * [Refaster template `StringRules.StringLastIndexOfCharWithIndex`](../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringlastindexofcharwithindexrecipe) @@ -80,8 +82,10 @@ recipeList: - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringValueOfMethodReferenceRecipe - tech.picnic.errorprone.refasterrules.StringRulesRecipes$SubstringRemainderRecipe - tech.picnic.errorprone.refasterrules.StringRulesRecipes$Utf8EncodedLengthRecipe - - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharRecipe - - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringRecipe + - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharFromIndexRecipe + - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfCharBetweenIndicesRecipe + - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringFromIndexRecipe + - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringIndexOfStringBetweenIndicesRecipe - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharRecipe - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfStringRecipe - tech.picnic.errorprone.refasterrules.StringRulesRecipes$StringLastIndexOfCharWithIndexRecipe diff --git a/docs/recipes/tech/picnic/errorprone/refasterrules/tech/picnic/errorprone/refasterrules/allrefasterrules.md b/docs/recipes/tech/picnic/errorprone/refasterrules/tech/picnic/errorprone/refasterrules/allrefasterrules.md index bf083814b2..d21ce43b92 100644 --- a/docs/recipes/tech/picnic/errorprone/refasterrules/tech/picnic/errorprone/refasterrules/allrefasterrules.md +++ b/docs/recipes/tech/picnic/errorprone/refasterrules/tech/picnic/errorprone/refasterrules/allrefasterrules.md @@ -59,7 +59,6 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [`ImmutableSortedSetRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/immutablesortedsetrulesrecipes) * [`ImmutableTableRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/immutabletablerulesrecipes) * [`IntStreamRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/intstreamrulesrecipes) -* [`JacksonRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/jacksonrulesrecipes) * [`LongStreamRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/longstreamrulesrecipes) * [`MapEntryRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/mapentryrulesrecipes) * [`MapRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/maprulesrecipes) @@ -73,6 +72,7 @@ This recipe is available under the [Apache License Version 2.0](https://www.apac * [`PrimitiveRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/primitiverulesrecipes) * [`RandomGeneratorRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/randomgeneratorrulesrecipes) * [`RxJava2AdapterRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/rxjava2adapterrulesrecipes) +* [`SpringTestRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/springtestrulesrecipes) * [`StreamRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/streamrulesrecipes) * [`StringRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/stringrulesrecipes) * [`SuggestedFixRules` Refaster recipes](../../../../../../../../tech/picnic/errorprone/refasterrules/suggestedfixrulesrecipes) @@ -122,7 +122,6 @@ recipeList: - tech.picnic.errorprone.refasterrules.ImmutableSortedSetRulesRecipes - tech.picnic.errorprone.refasterrules.ImmutableTableRulesRecipes - tech.picnic.errorprone.refasterrules.IntStreamRulesRecipes - - tech.picnic.errorprone.refasterrules.JacksonRulesRecipes - tech.picnic.errorprone.refasterrules.LongStreamRulesRecipes - tech.picnic.errorprone.refasterrules.MapEntryRulesRecipes - tech.picnic.errorprone.refasterrules.MapRulesRecipes @@ -136,6 +135,7 @@ recipeList: - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes - tech.picnic.errorprone.refasterrules.RandomGeneratorRulesRecipes - tech.picnic.errorprone.refasterrules.RxJava2AdapterRulesRecipes + - tech.picnic.errorprone.refasterrules.SpringTestRulesRecipes - tech.picnic.errorprone.refasterrules.StreamRulesRecipes - tech.picnic.errorprone.refasterrules.StringRulesRecipes - tech.picnic.errorprone.refasterrules.SuggestedFixRulesRecipes diff --git a/docs/recipes/xml/addorupdatechildtag.md b/docs/recipes/xml/addorupdatechildtag.md index b2245d6636..0b647e7d30 100644 --- a/docs/recipes/xml/addorupdatechildtag.md +++ b/docs/recipes/xml/addorupdatechildtag.md @@ -32,6 +32,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 Quarkus Maven plugin](/recipes/quarkus/spring/addquarkusmavenplugin.md) * [Add `prefer-application-packages` for JPA in `weblogic.xml`](/recipes/com/oracle/weblogic/rewrite/weblogicxmlpreferapplicationpackagesjpa.md) * [Add `prefer-application-packages` for SLF4J in `weblogic.xml`](/recipes/com/oracle/weblogic/rewrite/weblogicxmlpreferapplicationpackagesslf4j.md) * [Change cacheManager to use the SimpleCacheManager](/recipes/com/oracle/weblogic/rewrite/examples/spring/changecachemanagertosimplecachemanager.md) diff --git a/docs/recipes/xml/changetagattribute.md b/docs/recipes/xml/changetagattribute.md index c4166be81b..35248574d4 100644 --- a/docs/recipes/xml/changetagattribute.md +++ b/docs/recipes/xml/changetagattribute.md @@ -37,6 +37,7 @@ This recipe is used as part of the following composite recipes: * [Change cacheManager to use the SimpleCacheManager](/recipes/com/oracle/weblogic/rewrite/examples/spring/changecachemanagertosimplecachemanager.md) * [Migrate XJC Bindings to Jakata XML](/recipes/java/migrate/jakarta/javaxxmltojakartaxmlxjcbinding.md) * [Migrate from OptaPlanner to Timefold Solver](/recipes/ai/timefold/solver/migration/fromoptaplannertotimefoldsolver.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Migrate to Struts 6.0 constants](/recipes/java/struts/migrate6/migratestruts6constants.md) * [Migrate xmlns entries and javax. packages in `ejb-jar.xml` files](/recipes/java/migrate/jakarta/javaxejbjarxmltojakartaejbjarxml.md) * [Migrate xmlns entries and javax. packages in `validation.xml` files](/recipes/java/migrate/jakarta/javaxbeanvalidationxmltojakartabeanvalidationxml.md) diff --git a/docs/recipes/xml/changetagvalue.md b/docs/recipes/xml/changetagvalue.md index b1e7bb1a75..87fb23b355 100644 --- a/docs/recipes/xml/changetagvalue.md +++ b/docs/recipes/xml/changetagvalue.md @@ -36,6 +36,7 @@ This recipe is used as part of the following composite recipes: * [Flags any `org.apache.bval.jsr*` (bval 1.1) and `org.apache.bval.jsr303*` (bval 1.0) package references](/recipes/java/migrate/javaee8/apachedefaultprovider.md) * [JNDI name `jsf/ClientSideSecretKey` has been renamed to `faces/ClientSideSecretKey`, and the `jsf/FlashSecretKey` JNDI name has been renamed to `faces/FlashSecretKey`.](/recipes/com/oracle/weblogic/rewrite/jakarta/facesjndinameschanged3.md) * [JNDI name `jsf/ClientSideSecretKey` has been renamed to `faces/ClientSideSecretKey`, and the `jsf/FlashSecretKey` JNDI name has been renamed to `faces/FlashSecretKey`](/recipes/java/migrate/jakarta/facesjndinameschanged.md) +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) * [Removed OpenJPA providers in the persistence.xml file](/recipes/java/migrate/javaee7/openjpapersistenceprovider.md) * [Replace deprecated lifecycle phases](/recipes/maven/replacedeprecatedlifecyclephases.md) * [Upgrade to Maven model version 4.1.0](/recipes/maven/upgradetomodelversion410.md) diff --git a/docs/recipes/xml/removexmltag.md b/docs/recipes/xml/removexmltag.md index 84d09af6f2..607d104df7 100644 --- a/docs/recipes/xml/removexmltag.md +++ b/docs/recipes/xml/removexmltag.md @@ -33,6 +33,7 @@ This recipe is used as part of the following composite recipes: * [Change cacheManager to use the SimpleCacheManager](/recipes/com/oracle/weblogic/rewrite/examples/spring/changecachemanagertosimplecachemanager.md) * [Flags any `org.apache.bval.jsr*` (bval 1.1) and `org.apache.bval.jsr303*` (bval 1.0) package references](/recipes/java/migrate/javaee8/apachedefaultprovider.md) +* [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) * [Remove withJansi Logback configuration](/recipes/java/micronaut/removewithjansilogbackconfiguration.md) * [Update Default Servlet Handler for Spring Framework if empty](/recipes/com/oracle/weblogic/rewrite/spring/framework/defaultservlethandler.md) * [Update the Micronaut Data library](/recipes/java/micronaut/updatemicronautdata.md) diff --git a/docs/reference/latest-versions-of-every-openrewrite-module.md b/docs/reference/latest-versions-of-every-openrewrite-module.md index d0936de3f2..74c8d76fd9 100644 --- a/docs/reference/latest-versions-of-every-openrewrite-module.md +++ b/docs/reference/latest-versions-of-every-openrewrite-module.md @@ -14,87 +14,87 @@ 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.67.0](https://github.com/openrewrite/rewrite/releases/tag/v8.67.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.24.0](https://github.com/openrewrite/rewrite-maven-plugin/releases/tag/v6.24.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.21.0](https://github.com/openrewrite/rewrite-gradle-plugin/releases/tag/v7.21.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.19.0](https://github.com/openrewrite/rewrite-recipe-bom/releases/tag/v3.19.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.23.0](https://github.com/moderneinc/rewrite-recipe-bom/releases/tag/v0.23.0)** | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-angular](https://github.com/moderneinc/rewrite-angular/blob/main/) | [0.1.0](https://github.com/moderneinc/rewrite-angular/releases/tag/0.1.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-cryptography](https://github.com/moderneinc/rewrite-cryptography/blob/main/) | [0.11.2](https://github.com/moderneinc/rewrite-cryptography/releases/tag/0.11.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-devcenter](https://github.com/moderneinc/rewrite-devcenter/blob/main/) | [1.12.0](https://github.com/moderneinc/rewrite-devcenter/releases/tag/1.12.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [io.moderne.recipe:rewrite-elastic](https://github.com/moderneinc/rewrite-elastic/blob/main/) | [0.4.1](https://github.com/moderneinc/rewrite-elastic/releases/tag/0.4.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-hibernate](https://github.com/moderneinc/rewrite-hibernate/blob/main/) | [0.15.0](https://github.com/moderneinc/rewrite-hibernate/releases/tag/0.15.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-jasperreports](https://github.com/moderneinc/rewrite-jasperreports/blob/main/) | [0.1.0](https://github.com/moderneinc/rewrite-jasperreports/releases/tag/0.1.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-kafka](https://github.com/moderneinc/rewrite-kafka/blob/main/) | [0.4.1](https://github.com/moderneinc/rewrite-kafka/releases/tag/0.4.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.6.1](https://github.com/moderneinc/rewrite-program-analysis/releases/tag/0.6.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-react](https://github.com/moderneinc/rewrite-react/blob/main/) | [0.1.0](https://github.com/moderneinc/rewrite-react/releases/tag/0.1.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [io.moderne.recipe:rewrite-spring](https://github.com/moderneinc/rewrite-spring/blob/main/) | [0.17.0](https://github.com/moderneinc/rewrite-spring/releases/tag/0.17.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [**org.openrewrite:rewrite-bom**](https://github.com/openrewrite/rewrite) | **[8.68.1](https://github.com/openrewrite/rewrite/releases/tag/v8.68.1)** | [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.25.0](https://github.com/openrewrite/rewrite-maven-plugin/releases/tag/v6.25.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.22.0](https://github.com/openrewrite/rewrite-gradle-plugin/releases/tag/v7.22.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.20.0](https://github.com/openrewrite/rewrite-recipe-bom/releases/tag/v3.20.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.24.0](https://github.com/moderneinc/rewrite-recipe-bom/releases/tag/v0.24.0)** | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-angular](https://github.com/moderneinc/rewrite-angular/blob/main/) | [0.1.1](https://github.com/moderneinc/rewrite-angular/releases/tag/0.1.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-cryptography](https://github.com/moderneinc/rewrite-cryptography/blob/main/) | [0.11.3](https://github.com/moderneinc/rewrite-cryptography/releases/tag/0.11.3) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-devcenter](https://github.com/moderneinc/rewrite-devcenter/blob/main/) | [1.13.0](https://github.com/moderneinc/rewrite-devcenter/releases/tag/1.13.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [io.moderne.recipe:rewrite-elastic](https://github.com/moderneinc/rewrite-elastic/blob/main/) | [0.4.2](https://github.com/moderneinc/rewrite-elastic/releases/tag/0.4.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-hibernate](https://github.com/moderneinc/rewrite-hibernate/blob/main/) | [0.15.1](https://github.com/moderneinc/rewrite-hibernate/releases/tag/0.15.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-jasperreports](https://github.com/moderneinc/rewrite-jasperreports/blob/main/) | [0.2.0](https://github.com/moderneinc/rewrite-jasperreports/releases/tag/0.2.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-kafka](https://github.com/moderneinc/rewrite-kafka/blob/main/) | [0.4.2](https://github.com/moderneinc/rewrite-kafka/releases/tag/0.4.2) | [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.7.0](https://github.com/moderneinc/rewrite-program-analysis/releases/tag/0.7.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-react](https://github.com/moderneinc/rewrite-react/blob/main/) | [0.1.1](https://github.com/moderneinc/rewrite-react/releases/tag/0.1.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [io.moderne.recipe:rewrite-spring](https://github.com/moderneinc/rewrite-spring/blob/main/) | [0.18.0](https://github.com/moderneinc/rewrite-spring/releases/tag/0.18.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | | [io.moderne.recipe:rewrite-vulncheck](https://github.com/moderneinc/rewrite-vulncheck/blob/main/) | [0.5.0](https://github.com/moderneinc/rewrite-vulncheck/releases/tag/0.5.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite:rewrite-cobol](https://github.com/moderneinc/rewrite-cobol/blob/main/) | [2.13.0](https://github.com/moderneinc/rewrite-cobol/releases/tag/2.13.0) | License Unknown | -| [org.openrewrite:rewrite-core](https://github.com/openrewrite/rewrite/blob/main/) | [8.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-cobol](https://github.com/moderneinc/rewrite-cobol/blob/main/) | [2.13.0](https://github.com/moderneinc/rewrite-cobol/releases/tag/2.13.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite:rewrite-core](https://github.com/openrewrite/rewrite/blob/main/) | [8.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | | [org.openrewrite:rewrite-csharp](https://github.com/openrewrite/rewrite-csharp/blob/main/rewrite-csharp) | [0.27.27](https://github.com/openrewrite/rewrite-csharp/releases/tag/0.27.27) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite:rewrite-gradle](https://github.com/openrewrite/rewrite/blob/main/) | [8.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.0) | [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.8.1](https://github.com/openrewrite/rewrite-polyglot/releases/tag/2.8.1) | [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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-python](https://github.com/openrewrite/rewrite-python/blob/main/) | [1.44.1](https://github.com/openrewrite/rewrite-python/releases/tag/1.44.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite:rewrite-templating](https://github.com/openrewrite/rewrite-templating/blob/main/) | [1.38.1](https://github.com/openrewrite/rewrite-templating/releases/tag/1.38.1) | [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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.67.0](https://github.com/openrewrite/rewrite/releases/tag/8.67.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.29.1](https://github.com/openrewrite/rewrite-analysis/releases/tag/2.29.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-ai-search](https://github.com/moderneinc/rewrite-ai-search/blob/main/) | [0.32.1](https://github.com/moderneinc/rewrite-ai-search/releases/tag/0.32.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-all](https://github.com/openrewrite/rewrite-all/blob/main/) | [1.23.1](https://github.com/openrewrite/rewrite-all/releases/tag/1.23.1) | [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.15.0](https://github.com/moderneinc/rewrite-android/releases/tag/0.15.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-apache](https://github.com/openrewrite/rewrite-apache/blob/main/) | [2.20.1](https://github.com/openrewrite/rewrite-apache/releases/tag/2.20.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-azul](https://github.com/moderneinc/rewrite-azul/blob/main/) | [0.8.1](https://github.com/moderneinc/rewrite-azul/releases/tag/0.8.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-circleci](https://github.com/moderneinc/rewrite-circleci/blob/main/) | [3.9.1](https://github.com/moderneinc/rewrite-circleci/releases/tag/3.9.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-codemods](https://github.com/moderneinc/rewrite-codemods/blob/main/) | [0.22.0](https://github.com/moderneinc/rewrite-codemods/releases/tag/0.22.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.15.1](https://github.com/moderneinc/rewrite-codemods-ng/releases/tag/0.15.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.11.0](https://github.com/moderneinc/rewrite-compiled-analysis/releases/tag/0.11.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-comprehension](https://github.com/moderneinc/rewrite-comprehension/blob/main/) | [0.10.0](https://github.com/moderneinc/rewrite-comprehension/releases/tag/0.10.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-concourse](https://github.com/moderneinc/rewrite-concourse/blob/main/) | [3.9.1](https://github.com/moderneinc/rewrite-concourse/releases/tag/3.9.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.11.1](https://github.com/openrewrite/rewrite-cucumber-jvm/releases/tag/2.11.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-docker](https://github.com/openrewrite/rewrite-docker/blob/main/) | [2.14.1](https://github.com/openrewrite/rewrite-docker/releases/tag/2.14.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.14.1](https://github.com/moderneinc/rewrite-dotnet/releases/tag/0.14.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-dropwizard](https://github.com/openrewrite/rewrite-dropwizard/blob/main/) | [0.8.1](https://github.com/openrewrite/rewrite-dropwizard/releases/tag/0.8.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-feature-flags](https://github.com/openrewrite/rewrite-feature-flags/blob/main/) | [1.16.1](https://github.com/openrewrite/rewrite-feature-flags/releases/tag/1.16.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.15.0](https://github.com/openrewrite/rewrite-github-actions/releases/tag/3.15.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.17.1](https://github.com/openrewrite/rewrite-gitlab/releases/tag/0.17.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.15.1](https://github.com/openrewrite/rewrite-hibernate/releases/tag/2.15.1) | [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.11.0](https://github.com/openrewrite/rewrite-jackson/releases/tag/1.11.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.46.0](https://github.com/openrewrite/rewrite-java-dependencies/releases/tag/1.46.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.22.0](https://github.com/moderneinc/rewrite-java-security/releases/tag/3.22.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-jenkins](https://github.com/openrewrite/rewrite-jenkins/blob/main/) | [0.33.0](https://github.com/openrewrite/rewrite-jenkins/releases/tag/0.33.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.4.0](https://github.com/openrewrite/rewrite-joda/releases/tag/0.4.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.13.1](https://github.com/moderneinc/rewrite-kubernetes/releases/tag/3.13.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-liberty](https://github.com/openrewrite/rewrite-liberty/blob/main/) | [1.23.1](https://github.com/openrewrite/rewrite-liberty/releases/tag/1.23.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.19.0](https://github.com/openrewrite/rewrite-logging-frameworks/releases/tag/3.19.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.27.1](https://github.com/openrewrite/rewrite-micrometer/releases/tag/0.27.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.30.1](https://github.com/openrewrite/rewrite-micronaut/releases/tag/2.30.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.22.0](https://github.com/openrewrite/rewrite-migrate-java/releases/tag/3.22.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-netty](https://github.com/openrewrite/rewrite-netty/blob/main/) | [0.6.1](https://github.com/openrewrite/rewrite-netty/releases/tag/0.6.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.34.0](https://github.com/moderneinc/rewrite-nodejs/releases/tag/0.34.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-okhttp](https://github.com/openrewrite/rewrite-okhttp/blob/main/) | [0.20.1](https://github.com/openrewrite/rewrite-okhttp/releases/tag/0.20.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.27.1](https://github.com/openrewrite/rewrite-openapi/releases/tag/0.27.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | -| [org.openrewrite.recipe:rewrite-quarkus](https://github.com/openrewrite/rewrite-quarkus/blob/main/) | [2.28.1](https://github.com/openrewrite/rewrite-quarkus/releases/tag/2.28.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.18.1](https://github.com/moderneinc/rewrite-reactive-streams/releases/tag/0.18.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | -| [org.openrewrite.recipe:rewrite-rewrite](https://github.com/openrewrite/rewrite-rewrite/blob/main/) | [0.16.0](https://github.com/openrewrite/rewrite-rewrite/releases/tag/0.16.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.19.0](https://github.com/openrewrite/rewrite-spring/releases/tag/6.19.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.3.1](https://github.com/openrewrite/rewrite-spring-to-quarkus/releases/tag/0.3.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.8.1](https://github.com/moderneinc/rewrite-sql/releases/tag/2.8.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.22.0](https://github.com/openrewrite/rewrite-static-analysis/releases/tag/2.22.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-struts](https://github.com/openrewrite/rewrite-struts/blob/main/) | [0.23.1](https://github.com/openrewrite/rewrite-struts/releases/tag/0.23.1) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | -| [org.openrewrite.recipe:rewrite-terraform](https://github.com/moderneinc/rewrite-terraform/blob/main/) | [3.11.1](https://github.com/moderneinc/rewrite-terraform/releases/tag/3.11.1) | [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.22.0](https://github.com/openrewrite/rewrite-testing-frameworks/releases/tag/3.22.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.31.2](https://github.com/openrewrite/rewrite-third-party/releases/tag/0.31.2) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.9.0](https://github.com/openrewrite/rewrite-polyglot/releases/tag/2.9.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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-python](https://github.com/openrewrite/rewrite-python/blob/main/) | [1.44.2](https://github.com/openrewrite/rewrite-python/releases/tag/1.44.2) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite:rewrite-templating](https://github.com/openrewrite/rewrite-templating/blob/main/) | [1.38.2](https://github.com/openrewrite/rewrite-templating/releases/tag/1.38.2) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.68.1](https://github.com/openrewrite/rewrite/releases/tag/8.68.1) | [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.30.0](https://github.com/openrewrite/rewrite-analysis/releases/tag/2.30.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-ai-search](https://github.com/moderneinc/rewrite-ai-search/blob/main/) | [0.32.2](https://github.com/moderneinc/rewrite-ai-search/releases/tag/0.32.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-all](https://github.com/openrewrite/rewrite-all/blob/main/) | [1.23.2](https://github.com/openrewrite/rewrite-all/releases/tag/1.23.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.15.1](https://github.com/moderneinc/rewrite-android/releases/tag/0.15.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-apache](https://github.com/openrewrite/rewrite-apache/blob/main/) | [2.20.2](https://github.com/openrewrite/rewrite-apache/releases/tag/2.20.2) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-azul](https://github.com/moderneinc/rewrite-azul/blob/main/) | [0.8.2](https://github.com/moderneinc/rewrite-azul/releases/tag/0.8.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-circleci](https://github.com/moderneinc/rewrite-circleci/blob/main/) | [3.9.2](https://github.com/moderneinc/rewrite-circleci/releases/tag/3.9.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-codemods](https://github.com/moderneinc/rewrite-codemods/blob/main/) | [0.23.0](https://github.com/moderneinc/rewrite-codemods/releases/tag/0.23.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.16.0](https://github.com/moderneinc/rewrite-codemods-ng/releases/tag/0.16.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.11.1](https://github.com/moderneinc/rewrite-compiled-analysis/releases/tag/0.11.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-comprehension](https://github.com/moderneinc/rewrite-comprehension/blob/main/) | [0.10.1](https://github.com/moderneinc/rewrite-comprehension/releases/tag/0.10.1) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-concourse](https://github.com/moderneinc/rewrite-concourse/blob/main/) | [3.9.2](https://github.com/moderneinc/rewrite-concourse/releases/tag/3.9.2) | [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.11.2](https://github.com/openrewrite/rewrite-cucumber-jvm/releases/tag/2.11.2) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-docker](https://github.com/openrewrite/rewrite-docker/blob/main/) | [2.14.2](https://github.com/openrewrite/rewrite-docker/releases/tag/2.14.2) | [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.14.2](https://github.com/moderneinc/rewrite-dotnet/releases/tag/0.14.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-dropwizard](https://github.com/openrewrite/rewrite-dropwizard/blob/main/) | [0.8.2](https://github.com/openrewrite/rewrite-dropwizard/releases/tag/0.8.2) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-feature-flags](https://github.com/openrewrite/rewrite-feature-flags/blob/main/) | [1.16.2](https://github.com/openrewrite/rewrite-feature-flags/releases/tag/1.16.2) | [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.16.0](https://github.com/openrewrite/rewrite-github-actions/releases/tag/3.16.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.17.2](https://github.com/openrewrite/rewrite-gitlab/releases/tag/0.17.2) | [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.16.0](https://github.com/openrewrite/rewrite-hibernate/releases/tag/2.16.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.12.0](https://github.com/openrewrite/rewrite-jackson/releases/tag/1.12.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.47.0](https://github.com/openrewrite/rewrite-java-dependencies/releases/tag/1.47.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.23.0](https://github.com/moderneinc/rewrite-java-security/releases/tag/3.23.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-jenkins](https://github.com/openrewrite/rewrite-jenkins/blob/main/) | [0.33.1](https://github.com/openrewrite/rewrite-jenkins/releases/tag/0.33.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.5.0](https://github.com/openrewrite/rewrite-joda/releases/tag/0.5.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.14.0](https://github.com/moderneinc/rewrite-kubernetes/releases/tag/3.14.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-liberty](https://github.com/openrewrite/rewrite-liberty/blob/main/) | [1.23.2](https://github.com/openrewrite/rewrite-liberty/releases/tag/1.23.2) | [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.19.1](https://github.com/openrewrite/rewrite-logging-frameworks/releases/tag/3.19.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.27.2](https://github.com/openrewrite/rewrite-micrometer/releases/tag/0.27.2) | [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.30.2](https://github.com/openrewrite/rewrite-micronaut/releases/tag/2.30.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.23.0](https://github.com/openrewrite/rewrite-migrate-java/releases/tag/3.23.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-netty](https://github.com/openrewrite/rewrite-netty/blob/main/) | [0.6.2](https://github.com/openrewrite/rewrite-netty/releases/tag/0.6.2) | [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.35.0](https://github.com/moderneinc/rewrite-nodejs/releases/tag/0.35.0) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-okhttp](https://github.com/openrewrite/rewrite-okhttp/blob/main/) | [0.20.2](https://github.com/openrewrite/rewrite-okhttp/releases/tag/0.20.2) | [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.27.2](https://github.com/openrewrite/rewrite-openapi/releases/tag/0.27.2) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | +| [org.openrewrite.recipe:rewrite-quarkus](https://github.com/openrewrite/rewrite-quarkus/blob/main/) | [2.28.2](https://github.com/openrewrite/rewrite-quarkus/releases/tag/2.28.2) | [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.18.2](https://github.com/moderneinc/rewrite-reactive-streams/releases/tag/0.18.2) | [Moderne Proprietary License](https://docs.moderne.io/licensing/overview) | +| [org.openrewrite.recipe:rewrite-rewrite](https://github.com/openrewrite/rewrite-rewrite/blob/main/) | [0.16.1](https://github.com/openrewrite/rewrite-rewrite/releases/tag/0.16.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.20.0](https://github.com/openrewrite/rewrite-spring/releases/tag/6.20.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.4.0](https://github.com/openrewrite/rewrite-spring-to-quarkus/releases/tag/0.4.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.8.2](https://github.com/moderneinc/rewrite-sql/releases/tag/2.8.2) | [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.23.0](https://github.com/openrewrite/rewrite-static-analysis/releases/tag/2.23.0) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-struts](https://github.com/openrewrite/rewrite-struts/blob/main/) | [0.23.2](https://github.com/openrewrite/rewrite-struts/releases/tag/0.23.2) | [Moderne Source Available License](https://docs.moderne.io/licensing/moderne-source-available-license) | +| [org.openrewrite.recipe:rewrite-terraform](https://github.com/moderneinc/rewrite-terraform/blob/main/) | [3.11.2](https://github.com/moderneinc/rewrite-terraform/releases/tag/3.11.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.23.0](https://github.com/openrewrite/rewrite-testing-frameworks/releases/tag/3.23.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.32.0](https://github.com/openrewrite/rewrite-third-party/releases/tag/0.32.0) | [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) | ## CLI Installation diff --git a/docs/reference/moderne-recipes.md b/docs/reference/moderne-recipes.md index 3bb4329be6..886c6b833d 100644 --- a/docs/reference/moderne-recipes.md +++ b/docs/reference/moderne-recipes.md @@ -6,6 +6,7 @@ description: An autogenerated list of recipes that are exclusive to Moderne. This doc includes every recipe that is exclusive to users of Moderne. For a full list of all recipes, check out our [recipe catalog](https://docs.openrewrite.org/recipes). For more information about how to use Moderne for automating code refactoring and analysis at scale, [contact us](https://www.moderne.ai/contact-us). + ## rewrite-ai-search * [Find comments' language distribution](/recipes/ai/findcommentslanguage.md) - _Finds all comments and uses AI to predict which language the comment is in._ @@ -16,6 +17,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Get recommendations](/recipes/ai/research/getrecommendations.md) - _This recipe calls an AI model to get recommendations for modernizing the code base by looking at a sample of method declarations._ * [List all methods used](/recipes/ai/listallmethodsused.md) - _List all methods used in any Java source file._ + ## rewrite-android * [Change Android SDK version](/recipes/android/changeandroidsdkversion.md) - _Change `compileSdk`, `compileSdkVersion`, `targetSdk` and `targetSdkVersion` in an Android Gradle build file to the argument version._ @@ -35,20 +37,24 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Upgrade to Android SDK 34](/recipes/android/upgradetoandroidsdk34.md) - _Recipes to upgrade to Android SDK version 34._ * [Upgrade to Android SDK 35](/recipes/android/upgradetoandroidsdk35.md) - _Recipes to upgrade to Android SDK version 35._ + ## rewrite-angular * [Find Angular component](/recipes/angular/search/findangularcomponent.md) - _Locates usages of Angular components across the codebase including template elements and other references. If `componentName` is `null`, finds all Angular components._ + ## rewrite-azul * [Eliminate unused classes](/recipes/azul/eliminateunusedclasses.md) - _Deprecate and later delete classes that are unused, as detected by Azul Intelligence Cloud._ * [Find reachable methods](/recipes/azul/search/findreachablemethods.md) - _Find all methods defined in the repository's source code that are reachable._ + ## rewrite-circleci * [Install an orb](/recipes/circleci/installorb.md) - _Install a CircleCI [orb](https://circleci.com/docs/2.0/orb-intro/) if it is not already installed._ * [Update CircleCI image](/recipes/circleci/updateimage.md) - _See the list of [pre-built CircleCI images](https://circleci.com/docs/2.0/circleci-images/)._ + ## rewrite-codemods-ng * [Update to Angular v15](/recipes/codemods/migrate/angular/v15.md) - _Upgrade to Angular v15_ @@ -58,11 +64,13 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Update to Angular v19](/recipes/codemods/migrate/angular/v19.md) - _Upgrade to Angular v19_ * [Upgrade Angular versions](/recipes/codemods/migrate/angular/applyangularcli.md) - _Run `ng update` to upgrade Angular CLI and Angular Core to the specified version._ + ## rewrite-compiled-analysis * [Change `List#add` to `List#plus` and verify.](/recipes/compiled/verification/changelistmethodandverify.md) - _We know this won't compile._ * [Verify compilation](/recipes/compiled/verification/verifycompilation.md) - _This is a task that runs after another recipe to verify that the changes made by that recipe would result in a successful compilation._ + ## rewrite-comprehension * [Code comprehension with unit test examples](/recipes/knowledge/comprehendcodewithunittestexamples.md) - _First runs a scanning recipe to grab all unit tests, then supplements the unit tests examples for the AI-generate descriptions._ @@ -72,6 +80,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Update README](/recipes/knowledge/docs/updatereadme.md) - _Generate a README file for the project, containing information about the project inferred from its knowledge graph._ * [Update the README for an OpenRewrite recipe repository](/recipes/knowledge/docs/updateopenrewritereadme.md) - _Updates the README periodically to reflect the latest contents of recipe projects._ + ## rewrite-concourse * [Change Concourse value](/recipes/concourse/changevalue.md) - _Change every value matching the key pattern._ @@ -81,6 +90,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Find resource](/recipes/concourse/findresource.md) - _Find a Concourse resource by name._ * [Update git resource `source.uri` references](/recipes/concourse/updategitresourceuri.md) - _Update git resource `source.uri` URI values to point to a new URI value._ + ## rewrite-cryptography * [Find RSA key generation parameters](/recipes/cryptography/findrsakeygenparameters.md) - _Finds RSAKeyGenParameterSpec instantiations and extracts their parameter values into a data table._ @@ -89,6 +99,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Find `Security.setProperty(..)` calls for certain properties](/recipes/cryptography/findsecuritysetproperties.md) - _There is a defined set of properties that should not be set using `Security.setProperty(..)` as they can lead to security vulnerabilities._ * [Post quantum cryptography](/recipes/cryptography/postquantumcryptography.md) - _This recipe searches for instances in code that may be impacted by post quantum cryptography. Applications may need to support larger key sizes, different algorithms, or use crypto agility to handle the migration. The recipe includes detection of hardcoded values that affect behavior in a post-quantum world, programmatic configuration that may prevent algorithm changes, and general cryptographic usage patterns that should be reviewed._ + ## rewrite-dotnet * [Analyze a .NET project using upgrade-assistant](/recipes/dotnet/upgradeassistantanalyze.md) - _Run [upgrade-assistant analyze](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to analyze changes required to upgrade projects to a newer version of .NET. This recipe will generate an `org.openrewrite.dotnet.UpgradeAssistantAnalysis` data table containing the report details._ @@ -98,6 +109,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Upgrade to .NET 8.0 using upgrade-assistant](/recipes/dotnet/migratetonet8.md) - _Run [upgrade-assistant upgrade](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to upgrade projects to .NET 8.0._ * [Upgrade to .NET 9.0 using upgrade-assistant](/recipes/dotnet/migratetonet9.md) - _Run [upgrade-assistant upgrade](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to upgrade projects to .NET 9.0._ + ## rewrite-elastic * [Change numeric field type with conversion](/recipes/elastic/elastic9/changeapinumericfieldtype.md) - _Adds conversion methods with null checks for numeric type changes in Elasticsearch 9 API_ @@ -112,6 +124,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Rename `Elasticsearch valueBody()` methods](/recipes/elastic/elastic9/renameapifield.md) - _In Elasticsearch Java Client 9.0, the generic `valueBody()` method and `valueBody(...)` builder methods have been replaced with specific getter and setter methods that better reflect the type of data being returned. Similarly, for `GetRepositoryResponse`, the `result` field also got altered to `repositories`._ * [Use NamedValue parameters instead of Map](/recipes/elastic/elastic9/usenamedvalueparameters.md) - _Migrates `indicesBoost` and `dynamicTemplates` parameters from `Map` to `NamedValue` in Elasticsearch Java client 9.x._ + ## rewrite-hibernate * [Find JPQL definitions](/recipes/hibernate/search/findjpqldefinitions.md) - _Find Java Persistence Query Language definitions in the codebase._ @@ -132,6 +145,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Migrate to Hibernate 6.6.x](/recipes/hibernate/migratetohibernate66.md) - _This recipe will apply changes commonly needed when migrating to Hibernate 6.6.x._ * [Migrate to Hibernate 7 JFR APIs](/recipes/hibernate/update70/migratetohibernate7jfr.md) - _Migrates deprecated JFR integration APIs to their Hibernate 7 replacements. `EventManager` becomes `EventMonitor` and `HibernateMonitoringEvent` becomes `DiagnosticEvent`._ * [Migrate to Hibernate 7.0.x](/recipes/hibernate/migratetohibernate70.md) - _This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x._ +* [Migrate to Hibernate 7.1.x](/recipes/hibernate/migratetohibernate71.md) - _This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x._ * [Null safe Transaction#getTimeout()](/recipes/hibernate/update70/unboxingtransactiontimeout.md) - _JPA 3.2 adds `#getTimeout` but uses `Integer` whereas Hibernate has historically used `int`. Note that this raises the possibility of a `NullPointerException` during migration if, e.g., performing direct comparisons on the timeout value against an in (auto unboxing). This recipe adds ternary operators where `Transaction#getTimeout()` is used and a negative value will be used if the `getTimeout()` resulted in a null value._ * [Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations](/recipes/hibernate/update70/compositeusertypesessionfactoryimplementor.md) - _Remove leaking of SessionFactoryImplementor from `org.hibernate.usertype.CompositeUserType` invocations and implementations._ * [Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations](/recipes/hibernate/update70/usertypesharedsessioncontractimplementor.md) - _Remove leaking of SharedSessionContractImplementor from `org.hibernate.usertype.UserType` implementations._ @@ -141,6 +155,16 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Replace Session.buildLockRequest with LockOptions](/recipes/hibernate/update70/replacesessionlockrequest.md) - _Migrates Session.buildLockRequest(LockOptions.X) calls to use session.lock(entity, new LockOptions(LockMode.X)) in Hibernate 7.0._ * [Replace hibernate annotations with Jakarta variants](/recipes/hibernate/update70/replacehibernatewithjakartaannotations.md) - _Tries to replaces annotations that have been removed in Hibernate 7.0 with its Jakarta equivalent, such as Table, @Where, @OrderBy, etc. If a annotation is used with arguments that do not have a direct replacement, the annotation is not replaced at all._ + +## rewrite-jasperreports + +* [Migrate JRXlsExporter to JRXlsxExporter](/recipes/jasperreports/migratexlstoxlsxexporter.md) - _Migrates the deprecated `JRXlsExporter` to the new `JRXlsxExporter` class in JasperReports 6. Also updates related configuration classes from XLS to XLSX variants._ +* [Migrate JasperReports exporter setParameter to new API](/recipes/jasperreports/v5/migrateexportersetparameter.md) - _Migrates deprecated `setParameter` calls on JasperReports exporters to the new API using `setExporterInput` and `setExporterOutput`._ +* [Migrate to JasperReports 5.6.x](/recipes/jasperreports/upgradetojasperreports5.md) - _Migrates JasperReports from 4.6.0 to 5.6.x. This recipe includes minimal breaking changes, allowing teams to test and validate the migration before proceeding to version 6._ +* [Migrate to JasperReports 6](/recipes/jasperreports/upgradetojasperreports6.md) - _Migrates JasperReports from 5.x to 6.x with the new exporter API, XLS to XLSX move, and removal of Spring JasperReports views._ +* [Update JasperReports exporter configuration](/recipes/jasperreports/migrateexporterconfigtojasper6.md) - _Updates deprecated exporter parameter imports to the new configuration classes introduced in JasperReports 6. This includes migrating from parameter classes to configuration classes for PDF, HTML, CSV, and other exporters._ + + ## rewrite-java-security * [Dependency insight for C#](/recipes/csharp/dependencies/dependencyinsight.md) - _Finds dependencies in `*.csproj` and `packages.config`._ @@ -171,7 +195,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Find Twilio secrets](/recipes/java/security/secrets/findtwiliosecrets.md) - _Locates Twilio secrets stored in plain text in code._ * [Find Twitter secrets](/recipes/java/security/secrets/findtwittersecrets.md) - _Locates Twitter secrets stored in plain text in code._ * [Find and fix vulnerable Nuget dependencies](/recipes/csharp/dependencies/dependencyvulnerabilitycheck.md) - _This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe **only** upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this recipe will not make any changes. Vulnerability information comes from the [GitHub Security Advisory Database](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._ -* [Find and fix vulnerable dependencies](/recipes/java/dependencies/dependencyvulnerabilitycheck.md) - _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/). Last updated: 2025-11-17T1102._ +* [Find and fix vulnerable dependencies](/recipes/java/dependencies/dependencyvulnerabilitycheck.md) - _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: 2025-12-05T0835._ * [Find generic secrets](/recipes/java/security/secrets/findgenericsecrets.md) - _Locates generic secrets stored in plain text in code._ * [Find hard-coded loopback IPv4 addresses](/recipes/text/findhardcodedloopbackaddresses.md) - _Locates mentions of hard-coded IPv4 addresses from the loopback IP range. The loopback IP range includes `127.0.0.0` to `127.255.255.255`. This detects the entire localhost/loopback subnet range, not just the commonly used `127.0.0.1`._ * [Find hard-coded private IPv4 addresses](/recipes/text/findhardcodedprivateipaddresses.md) - _Locates mentions of hard-coded IPv4 addresses from private IP ranges. Private IP ranges include: * `192.168.0.0` to `192.168.255.255` * `10.0.0.0` to `10.255.255.255` * `172.16.0.0` to `172.31.255.255` It is not detecting the localhost subnet `127.0.0.0` to `127.255.255.255`._ @@ -211,6 +235,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [XML parser XXE vulnerability](/recipes/java/security/xmlparserxxevulnerability.md) - _Avoid exposing dangerous features of the XML parser by updating certain factory settings._ * [Zip slip](/recipes/java/security/zipslip.md) - _Zip slip is an arbitrary file overwrite critical vulnerability, which typically results in remote command execution. A fuller description of this vulnerability is available in the [Snyk documentation](https://snyk.io/research/zip-slip-vulnerability) on it._ + ## rewrite-kafka * [Migrate KStream to KTable conversion to use `toTable()` method](/recipes/kafka/streams/migratekstreamtotable.md) - _In Kafka Streams 2.5, a new `toTable()` method was added to simplify converting a KStream to a KTable. This recipe replaces the manual aggregation pattern `.groupByKey().reduce((oldVal, newVal) -> newVal)` with the more concise `.toTable()` method._ @@ -246,6 +271,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Upgrade Java to 11+ for Kafka clients](/recipes/kafka/upgradejavaforkafkaclients.md) - _Ensures Java 11 or higher is used when Kafka client libraries are present._ * [Upgrade Java to 17+ for Kafka broker/tools](/recipes/kafka/upgradejavaforkafkabroker.md) - _Ensures Java 17 or higher is used when Kafka broker or tools dependencies are present._ + ## rewrite-kubernetes * [Add Kubernetes configuration](/recipes/kubernetes/addconfiguration.md) - _Add default required configuration when it is missing._ @@ -292,6 +318,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Update `Service` `externalIP`](/recipes/kubernetes/services/updateserviceexternalip.md) - _Swap out an IP address with another one in `Service` `externalIP` settings._ * [Update image name](/recipes/kubernetes/updatecontainerimagename.md) - _Search for image names that match patterns and replace the components of the name with new values._ + ## rewrite-nodejs * [Find Node.js projects](/recipes/nodejs/search/findnodeprojects.md) - _Find Node.js projects and summarize data about them._ @@ -310,6 +337,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Node.js dependency insight](/recipes/nodejs/search/dependencyinsight.md) - _Identify the direct and transitive Node.js dependencies used in a project._ * [Upgrade Node.js dependencies](/recipes/nodejs/upgradedependencyversion.md) - _Upgrade matching Node.js direct dependencies._ + ## rewrite-program-analysis * [Find LDAP injection vulnerabilities](/recipes/analysis/java/security/findldapinjection.md) - _Finds LDAP injection vulnerabilities by tracking tainted data flow from user input to LDAP queries._ @@ -328,11 +356,13 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Find unused variable definitions](/recipes/analysis/java/controlflow/findunuseddefinitions.md) - _Identifies variable assignments whose values are never used before being overwritten._ * [Track data lineage](/recipes/analysis/java/datalineage/trackdatalineage.md) - _Tracks the flow of data from database sources (JDBC queries, JPA entities) to API sinks (REST endpoints, GraphQL mutations) to understand data dependencies and support compliance requirements._ + ## rewrite-react * [Find React component](/recipes/react/search/findreactcomponent.md) - _Locates usages of React components across the codebase including JSX elements and other references. If `componentName` is `null`, finds all React components._ * [Find React prop usage](/recipes/react/search/findpropusage.md) - _Locates usages of a specific prop of a React component._ + ## rewrite-reactive-streams * [Migrate to Reactor 3.5](/recipes/reactive/reactor/upgradereactor_3_5.md) - _Adopt to [breaking changes in Reactor 3.5](https://projectreactor.io/docs/core/3.4.26/api/deprecated-list.html)._ @@ -361,9 +391,13 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Replace various `Processor.cache` calls with their `Sinks` equivalent](/recipes/reactive/reactor/reactorprocessorcachetosinkrecipes.md) - _As of 3.5 Processors are deprecated and Sinks are preferred._ * [Replace various `Processor.create` calls with their `Sinks` equivalent](/recipes/reactive/reactor/reactorprocessorcreatetosinkrecipes.md) - _As of 3.5 Processors are deprecated and Sinks are preferred._ + ## rewrite-spring +* [Add Jackson2 for Jersey using JSON](/recipes/java/spring/boot4/addjackson2forjerseyjson.md) - _Check whether a module uses Jersey on combination with JSON and adds the needed `spring-boot-jackson` dependency and conditionally `spring-boot-jackson2` dependency._ +* [Add MongoDB representation properties for UUID and BigDecimal](/recipes/java/spring/boot4/addmongodbrepresentationproperties.md) - _Adds the 'spring.mongodb.representation.uuid' property with value 'standard' and the 'spring.data.mongodb.representation.big-decimal' property with the value 'decimal128' to Spring configuration files when a MongoDB dependency is detected._ * [Add `@Nullable` to optional Spring web parameters](/recipes/java/spring/framework/nullablespringwebparameters.md) - _In Spring Boot 4, JSpecify's `@Nullable` annotation should be used to indicate that a parameter can be null. This recipe adds `@Nullable` to parameters annotated with `@PathVariable(required = false)` or `@RequestParam(required = false)` and removes the now-redundant `required = false` attribute._ +* [Add `@SpringBootApplication` class](/recipes/java/spring/boot3/addspringbootapplication.md) - _Adds a `@SpringBootApplication` class containing a main method to bootify your Spring Framework application._ * [Add `@Valid` annotation to fields](/recipes/java/spring/boot3/addvalidtoconfigurationpropertiesfields.md) - _In Spring Boot 3.4, validation of `@ConfigurationProperties` classes annotated with `@Validated` now follows the Bean Validation specification, only cascading to nested properties if the corresponding field is annotated with `@Valid`. The recipe will add a `@Valid` annotation to each field which has a type that has a field which is annotated with a `jakarta.validation.constraints.*` annotation._ * [Comment deprecated methods in Spring 3.4](/recipes/java/spring/boot3/commentdeprecations.md) - _Spring Boot 3.4 deprecates methods that are not commonly used or need manual interaction._ * [Comment on `@MockitoSpyBean` and `@MockitoBean` in `@Configuration`](/recipes/java/spring/boot3/commentonmockandspybeansinconfigspring34.md) - _As stated in [Spring Docs](https://docs.spring.io/spring-framework/reference/testing/annotations/integration-spring/annotation-mockitobean.html) `@MockitoSpyBean` and `@MockitoBean` will only work in tests, explicitly not in `@Configuration` annotated classes._ @@ -380,6 +414,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Migrate Spring Cloud properties to 2024](/recipes/java/spring/cloud2024/springcloudproperties_2024.md) - _Migrate properties found in `application.properties` and `application.yml`._ * [Migrate Spring Cloud properties to 2025](/recipes/java/spring/cloud2025/springcloudproperties_2025.md) - _Migrate properties found in `application.properties` and `application.yml`._ * [Migrate Spring Framework dependencies to Spring Boot](/recipes/java/spring/boot/migratespringframeworkdependenciestospringboot.md) - _Migrate Spring Framework dependencies to Spring Boot._ +* [Migrate Spring Retry to Spring Resilience](/recipes/java/spring/boot4/migratespringretry.md) - _Handle spring-retry not longer managed by Spring Boot and the possible migration to Spring Core Resilience._ * [Migrate Spring to Spring Boot](/recipes/java/spring/boot/springtospringboot.md) - _Migrate non Spring Boot applications to the latest compatible Spring Boot release. This recipe will modify an application's build files introducing Maven dependency management for Spring Boot, or adding the Gradle Spring Boot build plugin._ * [Migrate WebEndpointDiscoverer 6-parameter constructor to 8-parameter](/recipes/java/spring/boot3/migratewebendpointdiscovererconstructor.md) - _The 6-parameter constructor of `WebEndpointDiscoverer` has been deprecated in Spring Boot 3.3. This recipe adds two new parameters (`AdditionalPathsMapper` and `OperationFilter<WebOperation>`) to the constructor and updates the Bean method signature to inject them as `ObjectProvider` types._ * [Migrate `@Endpoint` Security properties to 3.4](/recipes/java/spring/boot3/springbootproperties_3_4.md) - _Migrate the settings for Spring Boot Management Endpoint Security from `true`|`false` to `read-only`|`none`._ @@ -389,24 +424,33 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Migrate `ConditionalOnAvailableEndpoint` for Spring Boot 3.4](/recipes/java/spring/boot3/conditionalonavailableendpointmigrationspring34.md) - _Migrate `@ConditionalOnAvailableEndpoint(EndpointExposure.CLOUD_FOUNDRY)` to `@ConditionalOnAvailableEndpoint(EndpointExposure.WEB)` for Spring Boot 3.4._ * [Migrate `EndpointDiscoverer` deprecated constructor](/recipes/java/spring/boot3/migrateendpointdiscovererconstructor.md) - _The 4-parameter constructor of `EndpointDiscoverer` has been deprecated in Spring Boot 3.4. This recipe transforms it to use the new 5-parameter constructor with an additional Collection parameter._ * [Migrate `EntityManagerFactoryBuilder` deprecated constructor](/recipes/java/spring/boot3/migrateentitymanagerfactorybuilderconstructor.md) - _The constructors of `EntityManagerFactoryBuilder` have been deprecated in Spring Boot 3.4. This recipe transforms them to use the new constructor with a Function parameter for property mapping._ +* [Migrate `HibernateDaoSupport#getHibernateTemplate#saveOrUpdateAll`](/recipes/java/spring/hibernate/migratesaveorupdateall.md) - _Migrate removed `HibernateDaoSupport#getHibernateTemplate#.saveOrUpdateAll` to an iterative `HibernateDaoSupport#getHibernateTemplate#.saveOrUpdate`._ +* [Migrate `HibernateDaoSupport#getSession()` usage](/recipes/java/spring/hibernate/migratedaosupportgetsession.md) - _Migrate `HibernateDaoSupport#getSession()` usage to `HibernateDaoSupport#getSessionFactory()#getCurrentSession()` and annotate the methods with `@Transactional`._ * [Migrate `JmxEndpointDiscoverer` deprecated constructor](/recipes/java/spring/boot3/migratejmxendpointdiscovererconstructor.md) - _The 4-parameter constructor of `JmxEndpointDiscoverer` has been deprecated in Spring Boot 3.4. This recipe transforms it to use the new 5-parameter constructor with an additional Collection parameter._ * [Migrate `beans.xml` to Spring Framework configuration class](/recipes/java/spring/framework/beansxml/beansxmltoconfiguration.md) - _Converts Java/Jakarta EE `beans.xml` configuration files to Spring Framework `@Configuration` classes._ +* [Migrate `spring-retry` to Spring Framework resilience](/recipes/java/spring/boot4/migratespringretrytospringframework7.md) - _Migrate `spring-retry`s `@Retryable` and `@Backoff` annotation to Spring Framework 7 Resilience annotations._ * [Migrate `web.xml` to `WebApplicationInitializer`](/recipes/java/spring/framework/webxml/webxmltowebapplicationinitializer.md) - _Migrate `web.xml` to `WebApplicationInitializer` for Spring applications. This allows for programmatic configuration of the web application context, replacing the need for XML-based configuration. This recipe only picks up `web.xml` files located in the `src/main/webapp/WEB-INF` directory to avoid inference with tests. It creates a `WebXmlWebAppInitializer` class in `src/main/java` with respect to submodules if they contain java files. **If it finds an existing `WebXmlWebAppInitializer`, it skips the creation**._ * [Migrate antPathRequestMatcher to pathPatternRequestMatcher](/recipes/java/spring/security6/migrateantpathrequestmatcher.md) - _In Spring Security 6.5, `AntPathRequestMatcher` is deprecated in favor of `PathPatternRequestMatcher`. This recipe migrates static method calls and constructor usage to the new pattern._ +* [Migrate to Spring Boot 2.0](/recipes/java/spring/boot2/upgradespringboot_2_0.md) - _Migrate applications to the latest Spring Boot 2.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.0._ * [Migrate to Spring Boot 3.4 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_4-moderne-edition.md) - _Migrate applications to the latest Spring Boot 3.4 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 3.4._ * [Migrate to Spring Boot 3.5 (Moderne Edition)](/recipes/java/spring/boot3/upgradespringboot_3_5-moderne-edition.md) - _Migrate applications to the latest Spring Boot 3.5 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 3.5._ * [Migrate to Spring Boot 4.0 (Moderne Edition)](/recipes/java/spring/boot4/upgradespringboot_4_0-moderne-edition.md) - _Migrate applications to the latest Spring Boot 4.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 4.0._ * [Migrate to Spring Boot 4.0 modular starters](/recipes/java/spring/boot4/migratetomodularstarters.md) - _Removes monolithic starters and adds the necessary Spring Boot 4.0 starter dependencies based on package usage. Spring Boot 4.0 has a modular design requiring explicit starters for each feature. This recipe detects feature usage via package imports and adds the appropriate starters. Note: Higher-level starters (like data-jpa) include lower-level ones (like jdbc) transitively, so only the highest-level detected starter is added for each technology._ * [Migrate to Spring Kafka 3.3](/recipes/java/spring/boot3/upgradespringkafka_3_3.md) - _Migrate applications to the latest Spring Kafka 3.3 release._ +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) - _Migrate applications using Spring ORM Hibernate Support to Hibernate 5 compatible version. This will enable a further migration by the Spring Framework migration past 5._ * [Migrate to Spring Security 6.5](/recipes/java/spring/security6/upgradespringsecurity_6_5.md) - _Migrate applications to the latest Spring Security 6.5 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions._ * [Remove Spring Boot 3.5 deprecated conditions](/recipes/java/spring/boot3/removedeprecatedconditions.md) - _Replace Spring Boot 3.5 deprecated condition classes with their corresponding conditional annotations._ * [Remove `Replace.NONE` from `@AutoConfigureTestDatabase`](/recipes/java/spring/boot3/removereplacenonefromautoconfiguretestdatabase.md) - _`Replace.NONE` is the default value for `@AutoConfigureTestDatabase` since Spring Boot 3.4._ * [Remove `TestRestTemplate.HttpClientOption.ENABLE_REDIRECTS` option](/recipes/java/spring/boot3/removetestresttemplateenableredirectsoptionrecipe.md) - _The `TestRestTemplate` now uses the same follow redirects settings as the regular RestTemplate. The `HttpOption.ENABLE_REDIRECTS` option has also been deprecated. This recipe removes the option from the `TestRestTemplate` constructor arguments._ +* [Remove `loaderImplementation` from Gradle](/recipes/java/spring/boot4/removegradleuberjarloaderimplementationconfig.md) - _Removes the Spring Boot Uber-Jar `loaderImplementation` configuration from Gradle build files._ * [Replace ConditionOutcome.inverse() with constructor](/recipes/java/spring/boot3/replaceconditionaloutcomeinverse.md) - _Replace deprecated `ConditionOutcome.inverse(ConditionOutcome outcome)` calls with `new ConditionOutcome(!outcome.isMatch(), outcome.getConditionMessage())`._ -* [Replace `taskExecutor` with `applicationTaskExecutor`](/recipes/java/spring/boot3/resolvetaskexecutorfromcontext.md) - _Use bean name `applicationTaskExecutor` instead of `taskExecutor` when resolving `TaskExecutor` Bean from application context_ +* [Replace `taskExecutor` with `applicationTaskExecutor`](/recipes/java/spring/boot3/resolvetaskexecutorfromcontext.md) - _Use bean name `applicationTaskExecutor` instead of `taskExecutor` when resolving `TaskExecutor` Bean from application context._ * [Replace deprecated RequestMatcherProvider with new API](/recipes/java/spring/boot4/replacedeprecatedrequestmatcherprovider.md) - _Replaces the deprecated `org.springframework.boot.autoconfigure.security.servlet.RequestMatcherProvider` with `org.springframework.boot.actuate.autoconfigure.security.servlet.RequestMatcherProvider`. The new interface adds an `HttpMethod` parameter to the `getRequestMatcher` method._ * [Replace deprecated ThreadPoolTaskSchedulerBuilder 5-argument constructor](/recipes/java/spring/boot3/replacedeprecatedthreadpooltaskschedulerconstructor.md) - _The 5-parameter constructor of `ThreadPoolTaskSchedulerBuilder` has been deprecated in Spring Boot 3.5. This recipe transforms it to use the builder pattern instead, omitting null values and defaults._ +* [Replace deprecated `DockerApi`](/recipes/java/spring/boot4/replacedeprecateddockerapi.md) - _Replaces deprecated `DockerApi` constructors and configuration methods with their modern equivalents._ * [Replace deprecated `KafkaConnectionDetails` bootstrap server methods](/recipes/java/spring/boot3/replacedeprecatedkafkaconnectiondetailsbootstrapservergetters.md) - _Replace deprecated `KafkaConnectionDetails` bootstrap server methods with chained calls. For example, `getProducerBootstrapServers()` becomes `getProducer().getBootstrapServers()`._ +* [Replace deprecated `ThreadPoolTaskSchedulerBuilder` constructor](/recipes/java/spring/boot4/replacedeprecatedthreadpooltaskschedulerbuilderapi.md) - _Replaces the deprecated 5-argument constructor of `ThreadPoolTaskSchedulerBuilder` with the builder pattern._ +* [Replace deprecated `org.springframework.boot.autoconfigure.mongo` API](/recipes/java/spring/boot4/replacedeprecatedautoconfiguremongoapi.md) - _Replace deprecated `org.springframework.boot.autoconfigure.mongo` API._ * [Resolve Deprecations in Spring Boot 3.3](/recipes/java/spring/boot3/resolvedeprecationsspringboot_3_3.md) - _Migrates Deprecations in the Spring Boot 3.3 Release. Contains: - Removal of `DefaultJmsListenerContainerFactoryConfigurer.setObservationRegistry` - New parameter of `WebEndpointDiscoverer` constructor_ * [Spring Boot 3.5 best practices](/recipes/java/spring/boot3/springboot3bestpractices.md) - _Applies best practices to Spring Boot 3.5+ applications._ * [Update OpenTelemetry resource attributes](/recipes/java/spring/boot3/updateopentelemetryresourceattributes.md) - _The `service.group` resource attribute has been deprecated for OpenTelemetry in Spring Boot 3.5. Consider using alternative attributes or remove the deprecated attribute._ @@ -417,6 +461,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Use `kafkaAwareTransactionManager` setter](/recipes/java/spring/boot3/replacekafkatransactionmanagersetter.md) - _Replace deprecated `ContainerProperties#setTransactionManager(org.springframework.transaction.PlatformTransactionManager)` method with `ContainerProperties#setKafkaAwareTransactionManager(org.springframework.kafka.transaction.KafkaAwareTransactionManager)`. The method will be replaced only if its argument has the type `KafkaAwareTransactionManager`._ * [Use bean name `applicationTaskExecutor` instead of `taskExecutor`](/recipes/java/spring/boot3/replacetaskexecutornamebyapplicationtaskexecutorname.md) - _Spring Boot 3.5 removed the bean name `taskExecutor`. Where this bean name is used, the recipe replaces the bean name to `applicationTaskExecutor`. This also includes instances where the developer provided their own bean named `taskExecutor`. This also includes scenarios where JSR-250's `@Resource` annotation is used._ + ## rewrite-sql * [Change a SQL function name](/recipes/sql/changefunctionname.md) - _When migrating between dialects, often one name can be substituted for another. For example, Oracle's `NVL` function can be replaced with Postgres `COALESCE`._ @@ -431,6 +476,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Migrate Oracle SQL to PostgreSQL](/recipes/sql/migrateoracletopostgres.md) - _Converts Oracle-specific SQL syntax and functions to PostgreSQL equivalents._ * [Migrate SQL Server to PostgreSQL](/recipes/sql/migratesqlservertopostgres.md) - _Converts Microsoft SQL Server-specific SQL syntax and functions to PostgreSQL equivalents._ + ## rewrite-terraform * [Add Terraform configuration](/recipes/terraform/addconfiguration.md) - _If the configuration has a different value, leave it alone. If it is missing, add it._ @@ -552,6 +598,7 @@ This doc includes every recipe that is exclusive to users of Moderne. For a full * [Use HTTPS for Cloudfront distribution](/recipes/terraform/aws/usehttpsforcloudfrontdistribution.md) - _Secure communication by default._ * [Use a long enough byte length for `random` resources](/recipes/terraform/securerandom.md) - _Use a long enough byte length for `random` resources._ + ## rewrite-vulncheck * [Use VulnCheck Exploit Intelligence to fix vulnerabilities](/recipes/vulncheck/fixvulncheckvulnerabilities.md) - _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 VulnCheck Vulnerability Intelligence. The recipe has an option to limit fixes to only those vulnerabilities that have evidence of exploitation at various levels of severity._ diff --git a/docs/reference/recipes-by-tag.md b/docs/reference/recipes-by-tag.md index ccc59098e4..88c628bc8c 100644 --- a/docs/reference/recipes-by-tag.md +++ b/docs/reference/recipes-by-tag.md @@ -6,7 +6,8 @@ description: An autogenerated list of all recipe tags and the recipes within eac _This doc contains all recipe tags and the recipes that are tagged with them._ -Total tags: 259 +Total tags: 271 + ## 5to6 @@ -315,8 +316,10 @@ _1 recipe_ ## boot -_57 recipes_ +_61 recipes_ +* [Add Jackson2 for Jersey using JSON](/recipes/java/spring/boot4/addjackson2forjerseyjson.md) - _Check whether a module uses Jersey on combination with JSON and adds the needed `spring-boot-jackson` dependency and conditionally `spring-boot-jackson2` dependency._ +* [Add MongoDB representation properties for UUID and BigDecimal](/recipes/java/spring/boot4/addmongodbrepresentationproperties.md) - _Adds the 'spring.mongodb.representation.uuid' property with value 'standard' and the 'spring.data.mongodb.representation.big-decimal' property with the value 'decimal128' to Spring configuration files when a MongoDB dependency is detected._ * [Comment deprecated methods in Spring 3.4](/recipes/java/spring/boot3/commentdeprecations.md) - _Spring Boot 3.4 deprecates methods that are not commonly used or need manual interaction._ * [Downgrade Jakarta Servlet API to 5.0 when using Jetty](/recipes/java/spring/boot3/downgradeservletapiwhenusingjetty.md) - _Jetty does not yet support Servlet 6.0. This recipe will detect the presence of the `spring-boot-starter-jetty` as a first-order dependency and will add the maven property `jakarta-servlet.version` setting it's value to `5.0.0`. This will downgrade the `jakarta-servlet` artifact if the pom's parent extends from the spring-boot-parent._ * [Find patterns that require updating for Spring Boot 2.5](/recipes/java/spring/boot2/search/findupgraderequirementsspringboot_2_5.md) - _Looks for a series of patterns that have not yet had auto-remediation recipes developed for._ @@ -341,11 +344,13 @@ _57 recipes_ * [Migrate Spring Boot properties to 3.4](/recipes/java/spring/boot3/springbootproperties_3_4.md) - _Migrate properties found in `application.properties` and `application.yml`._ * [Migrate Spring Boot properties to 3.5](/recipes/java/spring/boot3/springbootproperties_3_5.md) - _Migrate properties found in `application.properties` and `application.yml`._ * [Migrate Spring Boot properties to 4.0](/recipes/java/spring/boot4/springbootproperties_4_0.md) - _Migrate properties found in `application.properties` and `application.yml`._ +* [Migrate Spring Retry to Spring Resilience](/recipes/java/spring/boot4/migratespringretry.md) - _Handle spring-retry not longer managed by Spring Boot and the possible migration to Spring Core Resilience._ * [Migrate Spring to Spring Boot](/recipes/java/spring/boot/springtospringboot.md) - _Migrate non Spring Boot applications to the latest compatible Spring Boot release. This recipe will modify an application's build files introducing Maven dependency management for Spring Boot, or adding the Gradle Spring Boot build plugin._ * [Migrate `@Endpoint` Security properties to 3.4](/recipes/java/spring/boot3/springbootproperties_3_4.md) - _Migrate the settings for Spring Boot Management Endpoint Security from `true`|`false` to `read-only`|`none`._ * [Migrate dropWizard dependencies to Spring Boot 3.x](/recipes/java/spring/boot3/migratedropwizarddependencies.md) - _Migrate dropWizard dependencies to the new artifactId, since these are changed with Spring Boot 3._ * [Migrate from Spring Boot 1.x to 2.0](/recipes/java/spring/boot2/upgradespringboot_2_0.md) - _Migrate Spring Boot 1.x applications to the latest Spring Boot 2.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.0._ * [Migrate thymeleaf dependencies to Spring Boot 3.x](/recipes/java/spring/boot3/migratethymeleafdependencies.md) - _Migrate thymeleaf dependencies to the new artifactId, since these are changed with Spring Boot 3._ +* [Migrate to Spring Boot 2.0](/recipes/java/spring/boot2/upgradespringboot_2_0.md) - _Migrate applications to the latest Spring Boot 2.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.0._ * [Migrate to Spring Boot 2.1](/recipes/java/spring/boot2/upgradespringboot_2_1.md) - _Migrate applications to the latest Spring Boot 2.1 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.1._ * [Migrate to Spring Boot 2.2](/recipes/java/spring/boot2/upgradespringboot_2_2.md) - _Migrate applications to the latest Spring Boot 2.2 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.2._ * [Migrate to Spring Boot 2.3](/recipes/java/spring/boot2/upgradespringboot_2_3.md) - _Migrate applications to the latest Spring Boot 2.3 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.3._ @@ -842,6 +847,12 @@ _2 recipes_ * [Check for github-actions updates daily](/recipes/github/dependabotcheckforgithubactionsupdatesdaily.md) - _Set dependabot to check for github-actions updates daily._ * [Check for github-actions updates weekly](/recipes/github/dependabotcheckforgithubactionsupdatesweekly.md) - _Set dependabot to check for github-actions updates weekly._ +## DEP0030 + +_1 recipe_ + +* [Replace deprecated `SlowBuffer` with `Buffer.allocUnsafeSlow()`](/recipes/node/migrate/buffer/replace-slow-buffer.md) - _Replace deprecated `new SlowBuffer(size)` calls with `Buffer.allocUnsafeSlow(size)`. SlowBuffer was used to create un-pooled Buffer instances, but has been removed in favor of the explicit Buffer.allocUnsafeSlow() method._ + ## DEP0044 _1 recipe_ @@ -944,18 +955,78 @@ _1 recipe_ * [Replace deprecated `util._extend()` with `Object.assign()`](/recipes/node/migrate/util/replace-util-extend.md) - _Replace deprecated `util._extend(target, source)` calls with `Object.assign(target, source)` which preserves the mutation behavior._ +## DEP0066 + +_1 recipe_ + +* [Replace `OutgoingMessage._headers` and `._headerNames` with public methods](/recipes/node/migrate/http/replace-outgoing-message-headers.md) - _Replace deprecated `OutgoingMessage.prototype._headers` with `getHeaders()`, `setHeader()`, `removeHeader()` and `OutgoingMessage.prototype._headerNames` with `getHeaderNames()` to address DEP0066 deprecation._ + +## DEP0081 + +_1 recipe_ + +* [Replace `fs.truncate()` with file descriptor to `fs.ftruncate()`](/recipes/node/migrate/fs/replace-fs-truncate-fd.md) - _Replace deprecated `fs.truncate(fd, ...)` and `fs.truncateSync(fd, ...)` calls with `fs.ftruncate(fd, ...)` and `fs.ftruncateSync(fd, ...)` when the first argument is a file descriptor (number)._ + +## DEP0093 + +_1 recipe_ + +* [Replace deprecated `crypto.fips` with `crypto.getFips()` and `crypto.setFips()`](/recipes/node/migrate/crypto/replace-crypto-fips.md) - _Replace deprecated `crypto.fips` property access with `crypto.getFips()` for reads and `crypto.setFips(value)` for writes._ + +## DEP0108 + +_1 recipe_ + +* [Replace deprecated `zlib.bytesRead` with `zlib.bytesWritten`](/recipes/node/migrate/zlib/replace-bytes-read.md) - _Replace deprecated `bytesRead` property on zlib streams with `bytesWritten`._ + ## DEP0158 _1 recipe_ * [Replace deprecated `Buffer.slice()` with `Buffer.subarray()`](/recipes/node/migrate/buffer/replace-deprecated-slice.md) - _Replace deprecated `buffer.slice()` calls with `buffer.subarray()` for compatibility with Uint8Array.prototype.slice()._ +## DEP0164 + +_1 recipe_ + +* [Coerce `process.exit()` and `process.exitCode` to integer](/recipes/node/migrate/process/coerce-process-exit-code.md) - _Wraps non-integer values passed to `process.exit()` or assigned to `process.exitCode` with `Math.trunc()` to avoid the DEP0164 deprecation warning about implicit coercion to integer._ + +## DEP0174 + +_1 recipe_ + +* [Remove unnecessary `util.promisify()` on Promise-returning functions](/recipes/node/migrate/util/remove-promisify-on-promise.md) - _Removes `util.promisify()` calls on functions that already return a Promise. Since Node.js v17.0.0, calling promisify on a function that returns a Promise emits a runtime deprecation warning (DEP0174)._ + +## DEP0176 + +_1 recipe_ + +* [Replace deprecated `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` with `fs.constants.*`](/recipes/node/migrate/fs/replace-fs-access-constants.md) - _Replace deprecated file access constants (`fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK`) with their equivalents from `fs.constants`. These constants were removed in Node.js v24+ and should be accessed through the constants namespace._ + +## DEP0177 + +_1 recipe_ + +* [Replace deprecated `util.types.isWebAssemblyCompiledModule()`](/recipes/node/migrate/util/replace-is-webassembly-compiled-module.md) - _Replace `util.types.isWebAssemblyCompiledModule(value)` with `value instanceof WebAssembly.Module`._ + +## DEP0178 + +_1 recipe_ + +* [Replace `dirent.path` with `dirent.parentPath`](/recipes/node/migrate/fs/replace-dirent-path.md) - _Replaces deprecated `dirent.path` property access with `dirent.parentPath` on `fs.Dirent` instances to address DEP0178 deprecation._ + ## DEP0179 _1 recipe_ * [Replace deprecated `new crypto.Hash()` and `new crypto.Hmac()` with factory methods](/recipes/node/migrate/crypto/replace-hash-constructor.md) - _Replace deprecated `new crypto.Hash(algorithm)` constructor calls with `crypto.createHash(algorithm)` and `new crypto.Hmac(algorithm, key)` with `crypto.createHmac(algorithm, key)` factory methods._ +## DEP0180 + +_1 recipe_ + +* [Replace deprecated `fs.Stats` constructor with object literal](/recipes/node/migrate/fs/replace-stats-constructor.md) - _Replace deprecated `new fs.Stats()` constructor calls with an object literal containing Stats properties initialized to undefined._ + ## DEP0181 _1 recipe_ @@ -970,16 +1041,18 @@ _1 recipe_ ## dependabot -_3 recipes_ +_4 recipes_ +* [Add cooldown periods to Dependabot configuration](/recipes/github/adddependabotcooldown.md) - _Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Change dependabot schedule interval](/recipes/github/changedependabotscheduleinterval.md) - _Change the schedule interval for a given package-ecosystem in a `dependabot.yml` configuration file. [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Check for github-actions updates daily](/recipes/github/dependabotcheckforgithubactionsupdatesdaily.md) - _Set dependabot to check for github-actions updates daily._ * [Check for github-actions updates weekly](/recipes/github/dependabotcheckforgithubactionsupdatesweekly.md) - _Set dependabot to check for github-actions updates weekly._ ## dependencies -_6 recipes_ +_7 recipes_ +* [Add cooldown periods to Dependabot configuration](/recipes/github/adddependabotcooldown.md) - _Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Change artifacts for a Maven plugin configuration](/recipes/com/oracle/weblogic/rewrite/jakarta/upgrademavenpluginconfigurationartifacts.md) - _Change artifacts for a Maven plugin configuration artifacts._ * [Change dependabot schedule interval](/recipes/github/changedependabotscheduleinterval.md) - _Change the schedule interval for a given package-ecosystem in a `dependabot.yml` configuration file. [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Check for github-actions updates daily](/recipes/github/dependabotcheckforgithubactionsupdatesdaily.md) - _Set dependabot to check for github-actions updates daily._ @@ -1357,8 +1430,9 @@ _15 recipes_ ## github -_11 recipes_ +_12 recipes_ +* [Add cooldown periods to Dependabot configuration](/recipes/github/adddependabotcooldown.md) - _Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Add manual workflow trigger](/recipes/github/addmanualtrigger.md) - _You can manually trigger workflow runs. To trigger specific workflows in a repository, use the `workflow_dispatch` event._ * [Change dependabot schedule interval](/recipes/github/changedependabotscheduleinterval.md) - _Change the schedule interval for a given package-ecosystem in a `dependabot.yml` configuration file. [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Check for github-actions updates daily](/recipes/github/dependabotcheckforgithubactionsupdatesdaily.md) - _Set dependabot to check for github-actions updates daily._ @@ -1481,10 +1555,11 @@ _1 recipe_ ## hibernate -_3 recipes_ +_4 recipes_ * [Add Hibernate ORM Core if has dependencies](/recipes/com/oracle/weblogic/rewrite/hibernate/addhibernateormcore61.md) - _This recipe will add Hibernate ORM Core if has dependencies._ * [Migrate to Hibernate for Jakarta EE 9](/recipes/com/oracle/weblogic/rewrite/hibernate/migratehibernatetojakartaee9.md) - _Upgrade hibernate libraries to Jakarta EE9 versions._ +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) - _Migrate applications using Spring ORM Hibernate Support to Hibernate 5 compatible version. This will enable a further migration by the Spring Framework migration past 5._ * [Upgrade Common open source libraries](/recipes/com/oracle/weblogic/rewrite/jakarta/upgradecommonopensourcelibraries.md) - _Upgrade Common open source libraries libraries to Jakarta EE9 versions._ ## httpclient @@ -1661,6 +1736,15 @@ _6 recipes_ * [Update Jakarta Persistence to 3.1](/recipes/com/oracle/weblogic/rewrite/jakarta/updatejakartapersistenceto31.md) - _Update Jakarta Persistence to 3.1._ * [Update Jakarta Persistence to 3.2](/recipes/com/oracle/weblogic/rewrite/jakarta/updatejakartapersistenceto32.md) - _Update Jakarta Persistence to 3.2._ +## jasperreports + +_4 recipes_ + +* [Migrate JRXlsExporter to JRXlsxExporter](/recipes/jasperreports/migratexlstoxlsxexporter.md) - _Migrates the deprecated `JRXlsExporter` to the new `JRXlsxExporter` class in JasperReports 6. Also updates related configuration classes from XLS to XLSX variants._ +* [Migrate to JasperReports 5.6.x](/recipes/jasperreports/upgradetojasperreports5.md) - _Migrates JasperReports from 4.6.0 to 5.6.x. This recipe includes minimal breaking changes, allowing teams to test and validate the migration before proceeding to version 6._ +* [Migrate to JasperReports 6](/recipes/jasperreports/upgradetojasperreports6.md) - _Migrates JasperReports from 5.x to 6.x with the new exporter API, XLS to XLSX move, and removal of Spring JasperReports views._ +* [Update JasperReports exporter configuration](/recipes/jasperreports/migrateexporterconfigtojasper6.md) - _Updates deprecated exporter parameter imports to the new configuration classes introduced in JasperReports 6. This includes migrating from parameter classes to configuration classes for PDF, HTML, CSV, and other exporters._ + ## java _10 recipes_ @@ -2357,8 +2441,9 @@ _7 recipes_ ## mongodb -_1 recipe_ +_2 recipes_ +* [Add MongoDB representation properties for UUID and BigDecimal](/recipes/java/spring/boot4/addmongodbrepresentationproperties.md) - _Adds the 'spring.mongodb.representation.uuid' property with value 'standard' and the 'spring.data.mongodb.representation.big-decimal' property with the value 'decimal128' to Spring configuration files when a MongoDB dependency is detected._ * [Replace Spring Boot Data MongoDB with Quarkus MongoDB Panache](/recipes/quarkus/spring/springbootdatamongotoquarkus.md) - _Migrates `spring-boot-starter-data-mongodb` to `quarkus-mongodb-panache`._ ## mssql @@ -2891,8 +2976,8 @@ _195 recipes_ * [Refaster template `StreamRules.StreamReduce`](/recipes/tech/picnic/errorprone/refasterrules/streamrulesrecipes$streamreducerecipe.md) - _Recipe created for the following Refaster template: ```java static final class StreamReduce<T> { @BeforeTemplate @SuppressWarnings(value = "java:S4266") Optional<T> before(Stream<T> stream, BinaryOperator<T> accumulator) { return stream.collect(reducing(accumulator)); } @AfterTemplate Optional<T> after(Stream<T> stream, BinaryOperator<T> accumulator) { return stream.reduce(accumulator); } } ``` ._ * [Refaster template `StringRules.EmptyString`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$emptystringrecipe.md) - _Avoid unnecessary creation of new empty `String` objects; use the empty string literal instead._ * [Refaster template `StringRules.StringIdentity`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringidentityrecipe.md) - _Avoid unnecessary creation of new `String` objects._ -* [Refaster template `StringRules.StringIndexOfChar`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharrecipe.md) - _Prefer `String#indexOf(int, int)` over less efficient alternatives._ -* [Refaster template `StringRules.StringIndexOfString`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringrecipe.md) - _Prefer `String#indexOf(String, int)` over less efficient alternatives._ +* [Refaster template `StringRules.StringIndexOfCharFromIndex`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofcharfromindexrecipe.md) - _Prefer `String#indexOf(int, int)` over less efficient alternatives._ +* [Refaster template `StringRules.StringIndexOfStringFromIndex`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringindexofstringfromindexrecipe.md) - _Prefer `String#indexOf(String, int)` over less efficient alternatives._ * [Refaster template `StringRules.StringIsEmpty`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringisemptyrecipe.md) - _Prefer `String#isEmpty()` over alternatives that consult the string's length._ * [Refaster template `StringRules.StringLastIndexOfChar`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringlastindexofcharrecipe.md) - _Prefer `String#lastIndexOf(int, int)` over less efficient alternatives._ * [Refaster template `StringRules.StringLastIndexOfString`](/recipes/tech/picnic/errorprone/refasterrules/stringrulesrecipes$stringlastindexofstringrecipe.md) - _Prefer `String#lastIndexOf(String, int)` over less efficient alternatives._ @@ -3061,8 +3146,9 @@ _1 recipe_ ## security -_59 recipes_ +_61 recipes_ +* [Add cooldown periods to Dependabot configuration](/recipes/github/adddependabotcooldown.md) - _Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Find AWS secrets](/recipes/java/security/secrets/findawssecrets.md) - _Locates AWS secrets stored in plain text in code._ * [Find Artifactory secrets](/recipes/java/security/secrets/findartifactorysecrets.md) - _Locates Artifactory secrets stored in plain text in code._ * [Find Azure secrets](/recipes/java/security/secrets/findazuresecrets.md) - _Locates Azure secrets stored in plain text in code._ @@ -3110,6 +3196,7 @@ _59 recipes_ * [Remove Security AccessController](/recipes/java/migrate/accesscontroller.md) - _The Security Manager API is unsupported in Java 24. This recipe will remove the usage of `java.security.AccessController`._ * [Remove Security Policy](/recipes/java/migrate/removesecuritypolicy.md) - _The Security Manager API is unsupported in Java 24. This recipe will remove the use of `java.security.Policy`._ * [Remove Security SecurityManager](/recipes/java/migrate/removesecuritymanager.md) - _The Security Manager API is unsupported in Java 24. This recipe will remove the usage of `java.security.SecurityManager`._ +* [Remove throws exception in `SecurityConfigurer` methods `init` and `configure`](/recipes/java/spring/security7/securityconfigurerremovethrowsexception.md) - _Remove throws exception in `SecurityConfigurer` methods `init` and `configure`._ * [Remove unnecessary `use-authorization-manager` for message security in Spring security 6](/recipes/java/spring/security6/removeuseauthorizationmanager.md) - _In Spring Security 6, `<websocket-message-broker>` defaults `use-authorization-manager` to `true`. So, the `use-authorization-manager` attribute for message security is no longer needed and can be removed._ * [Rename the package name from `com.nimbusds.jose.shaded.json` to `net.minidev.json`](/recipes/java/spring/security5/renamenimbusdsjsonobjectpackagename.md) - _Rename the package name from `com.nimbusds.jose.shaded.json` to `net.minidev.json`._ * [Replace Spring Boot OAuth2 Client with Quarkus OIDC Client](/recipes/quarkus/spring/springbootoauth2clienttoquarkus.md) - _Migrates spring-boot-starter-oauth2-client` to `quarkus-oidc-client`._ @@ -3154,8 +3241,10 @@ _12 recipes_ ## spring -_135 recipes_ +_141 recipes_ +* [Add Jackson2 for Jersey using JSON](/recipes/java/spring/boot4/addjackson2forjerseyjson.md) - _Check whether a module uses Jersey on combination with JSON and adds the needed `spring-boot-jackson` dependency and conditionally `spring-boot-jackson2` dependency._ +* [Add MongoDB representation properties for UUID and BigDecimal](/recipes/java/spring/boot4/addmongodbrepresentationproperties.md) - _Adds the 'spring.mongodb.representation.uuid' property with value 'standard' and the 'spring.data.mongodb.representation.big-decimal' property with the value 'decimal128' to Spring configuration files when a MongoDB dependency is detected._ * [Add Spring compatibility extensions for commonly used annotations](/recipes/quarkus/spring/addspringcompatibilityextensions.md) - _Adds Quarkus Spring compatibility extensions when Spring annotations are detected in the codebase._ * [Add or replace Spring Boot build plugin with Quarkus build plugin](/recipes/quarkus/spring/migratemavenplugin.md) - _Remove Spring Boot Maven plugin if present and add Quarkus Maven plugin using the same version as the quarkus-bom._ * [Comment deprecated methods in Spring 3.4](/recipes/java/spring/boot3/commentdeprecations.md) - _Spring Boot 3.4 deprecates methods that are not commonly used or need manual interaction._ @@ -3196,6 +3285,7 @@ _135 recipes_ * [Migrate Spring Cloud properties to 2023](/recipes/java/spring/cloud2023/springcloudproperties_2023.md) - _Migrate properties found in `application.properties` and `application.yml`._ * [Migrate Spring Cloud properties to 2024](/recipes/java/spring/cloud2024/springcloudproperties_2024.md) - _Migrate properties found in `application.properties` and `application.yml`._ * [Migrate Spring Cloud properties to 2025](/recipes/java/spring/cloud2025/springcloudproperties_2025.md) - _Migrate properties found in `application.properties` and `application.yml`._ +* [Migrate Spring Retry to Spring Resilience](/recipes/java/spring/boot4/migratespringretry.md) - _Handle spring-retry not longer managed by Spring Boot and the possible migration to Spring Core Resilience._ * [Migrate Spring to Spring Boot](/recipes/java/spring/boot/springtospringboot.md) - _Migrate non Spring Boot applications to the latest compatible Spring Boot release. This recipe will modify an application's build files introducing Maven dependency management for Spring Boot, or adding the Gradle Spring Boot build plugin._ * [Migrate `@EnableXyz` annotations to Quarkus extensions](/recipes/quarkus/spring/enableannotationstoquarkusdependencies.md) - _Removes Spring `@EnableXyz` annotations and adds the corresponding Quarkus extensions as dependencies._ * [Migrate `@Endpoint` Security properties to 3.4](/recipes/java/spring/boot3/springbootproperties_3_4.md) - _Migrate the settings for Spring Boot Management Endpoint Security from `true`|`false` to `read-only`|`none`._ @@ -3207,6 +3297,7 @@ _135 recipes_ * [Migrate to New Spring Cloud Gateway Modules and Starters](/recipes/java/spring/cloud2025/springcloudgatewaydeprecatedmodulesandstarters.md) - _Migrate to new Spring Cloud Gateway modules and starters for Spring Cloud 2025_ * [Migrate to Spring Batch 5.0 from 4.3](/recipes/java/spring/batch/springbatch4to5migration.md) - _Migrate applications built on Spring Batch 4.3 to the latest Spring Batch 5.0 release._ * [Migrate to Spring Batch 6.0 from 5.2](/recipes/java/spring/batch/springbatch5to6migration.md) - _Migrate applications built on Spring Batch 5.2 to the latest Spring Batch 6.0 release._ +* [Migrate to Spring Boot 2.0](/recipes/java/spring/boot2/upgradespringboot_2_0.md) - _Migrate applications to the latest Spring Boot 2.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.0._ * [Migrate to Spring Boot 2.1](/recipes/java/spring/boot2/upgradespringboot_2_1.md) - _Migrate applications to the latest Spring Boot 2.1 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.1._ * [Migrate to Spring Boot 2.2](/recipes/java/spring/boot2/upgradespringboot_2_2.md) - _Migrate applications to the latest Spring Boot 2.2 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.2._ * [Migrate to Spring Boot 2.3](/recipes/java/spring/boot2/upgradespringboot_2_3.md) - _Migrate applications to the latest Spring Boot 2.3 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 2.3._ @@ -3229,6 +3320,7 @@ _135 recipes_ * [Migrate to Spring Cloud 2025](/recipes/java/spring/cloud2025/upgradespringcloud_2025.md) - _Migrate applications to the latest Spring Cloud 2025 (Northfields) release._ * [Migrate to Spring Kafka 3.0](/recipes/java/spring/kafka/upgradespringkafka_3_0.md) - _Migrate applications to the latest Spring Kafka 3.0 release._ * [Migrate to Spring Kafka 3.3](/recipes/java/spring/boot3/upgradespringkafka_3_3.md) - _Migrate applications to the latest Spring Kafka 3.3 release._ +* [Migrate to Spring ORM to 5](/recipes/java/spring/orm/springorm5.md) - _Migrate applications using Spring ORM Hibernate Support to Hibernate 5 compatible version. This will enable a further migration by the Spring Framework migration past 5._ * [Migrate to Spring Security 5.7](/recipes/java/spring/security5/upgradespringsecurity_5_7.md) - _Migrate applications to the latest Spring Security 5.7 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions._ * [Migrate to Spring Security 5.8](/recipes/java/spring/security5/upgradespringsecurity_5_8.md) - _Migrate applications to the latest Spring Security 5.8 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions._ * [Migrate to Spring Security 6.0](/recipes/java/spring/security6/upgradespringsecurity_6_0.md) - _Migrate applications to the latest Spring Security 6.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions._ @@ -3240,6 +3332,7 @@ _135 recipes_ * [Migrate to Spring Security 6.5](/recipes/java/spring/security6/upgradespringsecurity_6_5.md) - _Migrate applications to the latest Spring Security 6.5 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions._ * [Migrate to Spring Security 7.0](/recipes/java/spring/security7/upgradespringsecurity_7_0.md) - _Migrate applications to the latest Spring Security 7.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions._ * [Remove the deprecated properties `additional-keys-to-sanitize` from the `configprops` and `env` end points](/recipes/java/spring/boot3/actuatorendpointsanitization.md) - _Spring Boot 3.0 removed the key-based sanitization mechanism used in Spring Boot 2.x in favor of a unified approach. See https://github.com/openrewrite/rewrite-spring/issues/228_ +* [Remove throws exception in `SecurityConfigurer` methods `init` and `configure`](/recipes/java/spring/security7/securityconfigurerremovethrowsexception.md) - _Remove throws exception in `SecurityConfigurer` methods `init` and `configure`._ * [Remove unnecessary `use-authorization-manager` for message security in Spring security 6](/recipes/java/spring/security6/removeuseauthorizationmanager.md) - _In Spring Security 6, `<websocket-message-broker>` defaults `use-authorization-manager` to `true`. So, the `use-authorization-manager` attribute for message security is no longer needed and can be removed._ * [Rename `server.max-http-header-size` to `server.max-http-request-header-size`](/recipes/java/spring/boot3/migratemaxhttpheadersize.md) - _Previously, the server.max-http-header-size was treated inconsistently across the four supported embedded web servers. When using Jetty, Netty, or Undertow it would configure the max HTTP request header size. When using Tomcat it would configure the max HTTP request and response header sizes. The renamed property is used to configure the http request header size in Spring Boot 3.0. **To limit the max header size of an HTTP response on Tomcat or Jetty (the only two servers that support such a setting), use a `WebServerFactoryCustomizer`**._ * [Rename the package name from `com.nimbusds.jose.shaded.json` to `net.minidev.json`](/recipes/java/spring/security5/renamenimbusdsjsonobjectpackagename.md) - _Rename the package name from `com.nimbusds.jose.shaded.json` to `net.minidev.json`._ @@ -3973,4 +4066,3 @@ _1 recipe_ _1 recipe_ * [Use XMLUnit Legacy for JUnit 5](/recipes/java/testing/junit5/usexmlunitlegacy.md) - _Migrates XMLUnit 1.x to XMLUnit legacy 2.x._ - diff --git a/docs/reference/recipes-with-data-tables.md b/docs/reference/recipes-with-data-tables.md index d686266b3c..b1bb634346 100644 --- a/docs/reference/recipes-with-data-tables.md +++ b/docs/reference/recipes-with-data-tables.md @@ -5324,7 +5324,7 @@ Locates and reports on all licenses in use. _org.openrewrite.java.dependencies.DependencyVulnerabilityCheck_ -This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe 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/). Last updated: 2025-11-17T1102. +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: 2025-12-05T0835. #### Data tables: diff --git a/docs/reference/scanning-recipes.md b/docs/reference/scanning-recipes.md index 8d3729b621..c1eb477157 100644 --- a/docs/reference/scanning-recipes.md +++ b/docs/reference/scanning-recipes.md @@ -6,21 +6,26 @@ description: An autogenerated list of all scanning recipes. _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#scanning-recipes)._ + ## rewrite-ai-search * [Find method invocations that resemble a pattern](/recipes/ai/research/findcodethatresembles.md) - _This recipe uses two phase AI approach to find a method invocation that resembles a search string._ * [Get recommendations](/recipes/ai/research/getrecommendations.md) - _This recipe calls an AI model to get recommendations for modernizing the code base by looking at a sample of method declarations._ + ## rewrite-all * [Find duplicate source files](/recipes/core/findduplicatesourcefiles.md) - _Record the presence of LSTs with duplicate paths, indicating that the same file was parsed more than once._ * [Language composition report](/recipes/core/languagecomposition.md) - _Counts the number of lines of the various kinds of source code and data formats parsed by OpenRewrite. Comments are not included in line counts. This recipe emits its results as two data tables, making no changes to any source file. One data table is per-file, the other is per-repository._ + ## rewrite-analysis * [Finds flow between two methods](/recipes/analysis/search/findflowbetweenmethods.md) - _Takes two patterns for the start/end methods to find flow between._ + ## rewrite-azul * [Eliminate unused classes](/recipes/azul/eliminateunusedclasses.md) - _Deprecate and later delete classes that are unused, as detected by Azul Intelligence Cloud._ * [Find reachable methods](/recipes/azul/search/findreachablemethods.md) - _Find all methods defined in the repository's source code that are reachable._ + ## rewrite-codemods * [Applies a codemod to all source files](/recipes/codemods/applycodemod.md) - _Applies a codemod represented by an NPM package to all source files._ @@ -29,16 +34,20 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Lint source code with ESLint](/recipes/codemods/eslint.md) - _Run [ESLint](https://eslint.org/) across the code to fix common static analysis issues in the code. This requires the code to have an existing ESLint configuration._ * [React i18next internationalization](/recipes/codemods/reacti18next.md) - _Automatically internationalizes React applications by extracting hardcoded strings and replacing them with [react-i18next](https://react.i18next.com) translation calls. Handles JSX text, attributes, and template literals with variables. Creates and updates a translation JSON file with extracted strings._ * [Run Putout](/recipes/codemods/putout.md) - _Run [Putout](https://github.com/coderaiser/putout) on your projects._ + ## rewrite-codemods-ng * [Upgrade Angular versions](/recipes/codemods/migrate/angular/applyangularcli.md) - _Run `ng update` to upgrade Angular CLI and Angular Core to the specified version._ + ## rewrite-comprehension * [Search for a class that uses the given design technique](/recipes/knowledge/search/searchdesigntechnique.md) - _Search for a class that uses the given design technique._ * [Update README](/recipes/knowledge/docs/updatereadme.md) - _Generate a README file for the project, containing information about the project inferred from its knowledge graph._ + ## rewrite-concourse * [Change Concourse value](/recipes/concourse/changevalue.md) - _Change every value matching the key pattern._ + ## rewrite-core * [Add entries to `.gitignore`](/recipes/core/addtogitignore.md) - _Adds entries to the project's `.gitignore` file. If no `.gitignore` file exists, one will be created. Existing entries that match will not be duplicated._ @@ -51,6 +60,7 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Remove ignoral of files or directories from .gitignore](/recipes/core/excludefilefromgitignore.md) - _This recipe will remove a file or directory from the .gitignore file. If the file or directory is already in the .gitignore file, it will be removed or negated. If the file or directory is not in the .gitignore file, no action will be taken._ * [Repository contains file](/recipes/search/repositorycontainsfile.md) - _Intended to be used primarily as a precondition for other recipes, this recipe checks if a repository contains a specific file or files matching a pattern. If present all files in the repository are marked with a `SearchResult` marker. If you want to get only the matching file as a search result, use `FindSourceFiles` instead._ * [Show Git source control metadata](/recipes/core/findgitprovenance.md) - _List out the contents of each unique `GitProvenance` marker in the set of source files. When everything is working correctly, exactly one such marker should be printed as all source files are expected to come from the same repository / branch / commit hash._ + ## rewrite-csharp * [A class that provides Equals(T) should implement IEquatable<T>](/recipes/csharp/recipes/meziantou/analyzer/equalityshouldbecorrectlyimplementedma0077.md) - __ @@ -623,10 +633,12 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [[deprecated] Use explicit type instead of 'var' (foreach variable)](/recipes/csharp/recipes/roslynator/analyzers/useexplicittypeinsteadofvarinforeachrcs1009.md) - __ * [[deprecated] Use explicit type instead of 'var' (when the type is not obvious)](/recipes/csharp/recipes/roslynator/analyzers/useexplicittypeinsteadofvarrcs1008.md) - __ * [[deprecated] Use explicit type instead of 'var' (when the type is obvious)](/recipes/csharp/recipes/roslynator/analyzers/useexplicittypeinsteadofvarrcs1012.md) - __ + ## rewrite-dotnet * [Analyze a .NET project using upgrade-assistant](/recipes/dotnet/upgradeassistantanalyze.md) - _Run [upgrade-assistant analyze](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to analyze changes required to upgrade projects to a newer version of .NET. This recipe will generate an `org.openrewrite.dotnet.UpgradeAssistantAnalysis` data table containing the report details._ * [Upgrade a .NET project using upgrade-assistant](/recipes/dotnet/upgradeassistant.md) - _Run [upgrade-assistant upgrade](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to upgrade projects to a newer version of .NET._ + ## rewrite-gradle * [Add Gradle dependency](/recipes/gradle/adddependency.md) - _Add a gradle dependency to a `build.gradle` file in the correct configuration based on where it is used._ @@ -639,12 +651,15 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Update a Gradle plugin by id](/recipes/gradle/plugins/upgradepluginversion.md) - _Update a Gradle plugin by id to a later version defined by the plugins DSL. To upgrade a plugin dependency defined by `buildscript.dependencies`, use the `UpgradeDependencyVersion` recipe instead._ * [Upgrade Gradle dependency versions](/recipes/gradle/upgradedependencyversion.md) - _Upgrade the version of a dependency in a build.gradle file. Supports updating dependency declarations of various forms: * `String` notation: `"group:artifact:version"` * `Map` notation: `group: 'group', name: 'artifact', version: 'version'` Can update version numbers which are defined earlier in the same file in variable declarations._ * [Upgrade transitive Gradle dependencies](/recipes/gradle/upgradetransitivedependencyversion.md) - _Upgrades the version of a transitive dependency in a Gradle build file. There are many ways to do this in Gradle, so the mechanism for upgrading a transitive dependency must be considered carefully depending on your style of dependency management._ + ## rewrite-hcl * [Move content to another file](/recipes/hcl/movecontenttofile.md) - _Move content to another HCL file, deleting it in the original file._ + ## rewrite-hibernate * [Remove table from single table inherited entity](/recipes/hibernate/update66/removetablefrominheritedentity.md) - _For Single Table Inherited Entities Hibernate ignores the `@Table` annotation on child entities. From Version 6.6 it is considered an error._ + ## rewrite-java * [Create Java class](/recipes/java/createemptyjavaclass.md) - _Create a new, empty Java class._ @@ -652,6 +667,7 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Find the oldest Java version in use](/recipes/java/search/hasminimumjavaversion.md) - _The oldest Java version in use is the lowest Java version in use in any source set of any subproject of a repository. It is possible that, for example, the main source set of a project uses Java 8, but a test source set uses Java 17. In this case, the oldest Java version in use is Java 8._ * [Find type mappings](/recipes/java/search/findtypemappings.md) - _Study the frequency of `J` types and their `JavaType` type attribution._ * [Study the size of the classpath by source set](/recipes/java/search/classpathtypecounts.md) - _Emit one data table row per source set in a project, with the number of types in the source set._ + ## rewrite-java-dependencies * [Add Gradle or Maven dependency](/recipes/java/dependencies/adddependency.md) - _For a Gradle project, add a gradle dependency to a `build.gradle` file in the correct configuration based on where it is used. Or For a maven project, Add a Maven dependency to a `pom.xml` file in the correct scope based on where it is used._ @@ -664,30 +680,36 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Repository has dependency](/recipes/java/dependencies/search/repositoryhasdependency.md) - _Searches for both Gradle and Maven modules that have a dependency matching the specified groupId and artifactId. Places a `SearchResult` marker on all sources within a repository with a matching dependency. This recipe is intended to be used as a precondition for other recipes. For example this could be used to limit the application of a spring boot migration to only projects that use a springframework dependency, limiting unnecessary upgrading. If the search result you want is instead just the build.gradle(.kts) or pom.xml file applying the plugin, use the `FindDependency` recipe instead._ * [Upgrade Gradle or Maven dependency versions](/recipes/java/dependencies/upgradedependencyversion.md) - _For Gradle projects, upgrade the version of a dependency in a `build.gradle` file. Supports updating dependency declarations of various forms: * `String` notation: `"group:artifact:version"` * `Map` notation: `group: 'group', name: 'artifact', version: 'version'` It is possible to update version numbers which are defined earlier in the same file in variable declarations. For Maven projects, upgrade the version of a dependency by specifying a group ID and (optionally) an artifact ID using Node Semver advanced range selectors, allowing more precise control over version updates to patch or minor releases._ * [Upgrade transitive Gradle or Maven dependencies](/recipes/java/dependencies/upgradetransitivedependencyversion.md) - _Upgrades the version of a transitive dependency in a Maven pom.xml or Gradle build.gradle. Leaves direct dependencies unmodified. Can be paired with the regular Upgrade Dependency Version recipe to upgrade a dependency everywhere, regardless of whether it is direct or transitive._ + ## rewrite-java-security * [Enable CSRF attack prevention](/recipes/java/security/spring/csrfprotection.md) - _Cross-Site Request Forgery (CSRF) is a type of attack that occurs when a malicious web site, email, blog, instant message, or program causes a user's web browser to perform an unwanted action on a trusted site when the user is authenticated. See the full [OWASP cheatsheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html)._ * [Find and fix vulnerable Nuget dependencies](/recipes/csharp/dependencies/dependencyvulnerabilitycheck.md) - _This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe **only** upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this recipe will not make any changes. Vulnerability information comes from the [GitHub Security Advisory Database](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._ -* [Find and fix vulnerable dependencies](/recipes/java/dependencies/dependencyvulnerabilitycheck.md) - _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/). Last updated: 2025-11-17T1102._ +* [Find and fix vulnerable dependencies](/recipes/java/dependencies/dependencyvulnerabilitycheck.md) - _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: 2025-12-05T0835._ * [Find licenses in use in third-party dependencies](/recipes/java/dependencies/dependencylicensecheck.md) - _Locates and reports on all licenses in use._ * [Prevent clickjacking](/recipes/java/security/spring/preventclickjacking.md) - _The `frame-ancestors` directive can be used in a Content-Security-Policy HTTP response header to indicate whether or not a browser should be allowed to render a page in a `<frame>` or `<iframe>`. Sites can use this to avoid Clickjacking attacks by ensuring that their content is not embedded into other sites._ * [Remove unused dependencies](/recipes/java/dependencies/removeunuseddependencies.md) - _Scans through source code collecting references to types and methods, removing any dependencies that are not used from Maven or Gradle build files. 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._ * [Software bill of materials](/recipes/java/dependencies/softwarebillofmaterials.md) - _Produces a software bill of materials (SBOM) for a project. An SBOM is a complete list of all dependencies used in a project, including transitive dependencies. The produced SBOM is in the [CycloneDX](https://cyclonedx.org/) XML format. Supports Gradle and Maven. Places a file named sbom.xml adjacent to the Gradle or Maven build file._ * [XML parser XXE vulnerability](/recipes/java/security/xmlparserxxevulnerability.md) - _Avoid exposing dangerous features of the XML parser by updating certain factory settings._ + ## rewrite-jenkins * [Add plugin developer team to CODEOWNERS](/recipes/jenkins/github/addteamtocodeowners.md) - _Adds the `{artifactId}-plugin-developers` team to all files in `.github/CODEOWNERS` if absent._ * [Create `index.jelly` if it doesn't exist](/recipes/jenkins/createindexjelly.md) - _Jenkins tooling [requires](https://github.com/jenkinsci/maven-hpi-plugin/pull/302) `src/main/resources/index.jelly` exists with a description._ * [Upgrade jenkins java version](/recipes/jenkins/upgradejavaversion.md) - _Upgrades the version of java specified in Jenkins groovy scripts. Will not downgrade if the version is newer than the specified version._ + ## rewrite-joda * [Migrate Joda-Time to Java time](/recipes/java/joda/time/jodatimerecipe.md) - _Prefer the Java standard library over third-party usage of Joda Time._ + ## rewrite-json * [Create JSON file](/recipes/json/createjsonfile.md) - _Create a new JSON file._ + ## rewrite-liberty * [Removes invalid JNDI properties](/recipes/java/liberty/removewas2libertynonportablejndilookup.md) - _Remove the use of invalid JNDI properties from Hashtable._ + ## rewrite-maven * [Add Maven dependency](/recipes/maven/adddependency.md) - _Add a Maven dependency to a `pom.xml` file in the correct scope based on where it is used._ @@ -702,12 +724,14 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Update Maven wrapper](/recipes/maven/updatemavenwrapper.md) - _Update the version of Maven used in an existing Maven wrapper._ * [Upgrade Maven dependency version](/recipes/maven/upgradedependencyversion.md) - _Upgrade the version of a dependency by specifying a group and (optionally) an artifact using Node Semver advanced range selectors, allowing more precise control over version updates to patch or minor releases._ * [Upgrade transitive Maven dependencies](/recipes/maven/upgradetransitivedependencyversion.md) - _Upgrades the version of a transitive dependency in a Maven pom file. Leaves direct dependencies unmodified. Can be paired with the regular Upgrade Dependency Version recipe to upgrade a dependency everywhere, regardless of whether it is direct or transitive._ + ## rewrite-micronaut * [Add Maven annotation processor path](/recipes/java/micronaut/addannotationprocessorpath.md) - _Add the groupId, artifactId, version, and exclusions of a Maven annotation processor path._ * [Add `@Introspected` to classes requiring a map representation](/recipes/java/micronaut/typerequiresintrospection.md) - _In Micronaut 2.x a reflection-based strategy was used to retrieve that information if the class was not annotated with `@Introspected`. As of Micronaut 3.x it is required to annotate classes with `@Introspected` that are used in this way._ * [Add `snakeyaml` dependency if needed](/recipes/java/micronaut/addsnakeyamldependencyifneeded.md) - _This recipe will add the `snakeyaml` dependency to a Micronaut 4 application that uses yaml configuration._ * [Copy non-inherited annotations from super class](/recipes/java/micronaut/copynoninheritedannotations.md) - _As of Micronaut 3.x only [annotations](https://github.com/micronaut-projects/micronaut-core/blob/3.0.x/src/main/docs/guide/appendix/breaks.adoc#annotation-inheritance) that are explicitly meta-annotated with `@Inherited` are inherited from parent classes and interfaces._ + ## rewrite-migrate-java * [Add scope annotation to injected classes](/recipes/java/migrate/javax/addscopetoinjectedclass.md) - _Finds member variables annotated with `@Inject' and applies `@Dependent` scope annotation to the variable's type._ @@ -720,11 +744,13 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Unannotated entity attributes require a Transient annotation](/recipes/java/migrate/javax/addtransientannotationtoentity.md) - _In OpenJPA, attributes that are themselves entity classes are not persisted by default. EclipseLink has a different default behavior and tries to persist these attributes to the database. To keep the OpenJPA behavior of ignoring unannotated entity attributes, add the `javax.persistence.Transient` annotation to these attributes in EclipseLink._ * [Use latest JAXB API and runtime for Jakarta EE 8](/recipes/java/migrate/javax/addjaxbruntime.md) - _Update build files to use the latest JAXB runtime from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. The recipe will add a JAXB run-time, in Gradle `compileOnly`+`testImplementation` and Maven `provided` scope, to any project that has a transitive dependency on the JAXB API. **The resulting dependencies still use the `javax` namespace, despite the move to the Jakarta artifact**._ * [`@Embeddable` classes cannot have an `@Id` annotation when referenced by an `@EmbeddedId` annotation](/recipes/java/migrate/javax/removeembeddableid.md) - _According to the Java Persistence API (JPA) specification, if an entity defines an attribute with an `@EmbeddedId` annotation, the embeddable class cannot contain an attribute with an `@Id` annotation. If both the `@EmbeddedId` annotation and the `@Id` annotation are defined, OpenJPA ignores the `@Id` annotation, whereas EclipseLink throws an exception._ + ## rewrite-nodejs * [Find Node.js projects](/recipes/nodejs/search/findnodeprojects.md) - _Find Node.js projects and summarize data about them._ * [Find and fix vulnerable npm dependencies](/recipes/nodejs/dependencyvulnerabilitycheck.md) - _This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe **only** upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this recipe will not make any changes. Vulnerability information comes from the [GitHub Security Advisory Database](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._ * [Node.js dependency insight](/recipes/nodejs/search/dependencyinsight.md) - _Identify the direct and transitive Node.js dependencies used in a project._ + ## rewrite-program-analysis * [Find LDAP injection vulnerabilities](/recipes/analysis/java/security/findldapinjection.md) - _Finds LDAP injection vulnerabilities by tracking tainted data flow from user input to LDAP queries._ @@ -736,14 +762,18 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Find path traversal vulnerabilities](/recipes/analysis/java/security/findpathtraversal.md) - _Detects potential path traversal vulnerabilities where user input flows to file system operations without proper validation._ * [Find unencrypted PII storage](/recipes/analysis/java/security/findunencryptedpiistorage.md) - _Identifies when personally identifiable information (PII) is stored in databases, files, or other persistent storage without encryption._ * [Track data lineage](/recipes/analysis/java/datalineage/trackdatalineage.md) - _Tracks the flow of data from database sources (JDBC queries, JPA entities) to API sinks (REST endpoints, GraphQL mutations) to understand data dependencies and support compliance requirements._ + ## rewrite-properties * [Create Properties file](/recipes/properties/createpropertiesfile.md) - _Create a new Properties file._ + ## rewrite-rewrite * [Extract documentation examples from tests](/recipes/java/recipes/examplesextractor.md) - _Extract the before/after sources from tests annotated with `@DocumentExample`, and generate a YAML file with those examples to be shown in the documentation to show usage._ + ## rewrite-spring +* [Add `@SpringBootApplication` class](/recipes/java/spring/boot3/addspringbootapplication.md) - _Adds a `@SpringBootApplication` class containing a main method to bootify your Spring Framework application._ * [Add logging.pattern.level for traceId and spanId](/recipes/java/spring/cloud2022/addloggingpatternlevelforsleuth.md) - _Add `logging.pattern.level` for traceId and spanId which was previously set by default, if not already set._ * [Applications using logging shutdown hooks](/recipes/java/spring/boot2/search/loggingshutdownhooks.md) - _Spring Boot registers a logging shutdown hook by default for JAR-based applications to ensure that logging resources are released when the JVM exits. If your application is deployed as a WAR then the shutdown hook is not registered since the servlet container usually handles logging concerns. Most applications will want the shutdown hook. However, if your application has complex context hierarchies, then you may need to disable it. You can use the `logging.register-shutdown-hook` property to do that._ * [Integration scheduler pool size](/recipes/java/spring/boot2/search/integrationschedulerpoolrecipe.md) - _Spring Integration now reuses an available `TaskScheduler` rather than configuring its own. In a typical application setup relying on the auto-configuration, this means that Spring Integration uses the auto-configured task scheduler that has a pool size of 1. To restore Spring Integration’s default of 10 threads, use the `spring.task.scheduling.pool.size` property._ @@ -763,10 +793,12 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Upgrade Spring dependencies](/recipes/maven/spring/upgradeexplicitspringbootdependencies.md) - _Upgrades dependencies according to the specified version of spring boot. Spring boot has many direct and transitive dependencies. When a module has an explicit dependency on one of these it may also need to be upgraded to match the version used by spring boot._ * [Use `AutoConfiguration#imports`](/recipes/java/spring/boot2/moveautoconfigurationtoimportsfile.md) - _Use `AutoConfiguration#imports` instead of the deprecated entry `EnableAutoConfiguration` in `spring.factories` when defining autoconfiguration classes._ * [Use `spring.reactor.context-propagation` property](/recipes/java/spring/boot3/migratehookstoreactorcontextproperty.md) - _Replace `Hooks.enableAutomaticContextPropagation()` with `spring.reactor.context-propagation=true`._ + ## rewrite-static-analysis * [Rename packages to lowercase](/recipes/staticanalysis/lowercasepackage.md) - _By convention all Java package names should contain only lowercase letters, numbers, and dashes. This recipe converts any uppercase letters in package names to be lowercase._ * [Standardize method name casing](/recipes/staticanalysis/methodnamecasing.md) - _Fixes method names that do not follow standard naming conventions. For example, `String getFoo_bar()` would be adjusted to `String getFooBar()` and `int DoSomething()` would be adjusted to `int doSomething()`._ + ## rewrite-testing-frameworks * [Add Hamcrest JUnit dependency](/recipes/java/testing/junit5/addhamcrestjunitdependency.md) - _Add Hamcrest JUnit dependency only if JUnit 4's `assertThat` or `assumeThat` is used._ @@ -775,16 +807,20 @@ _This doc contains all [scanning recipes](/concepts-and-explanations/recipes#sca * [Remove `public` visibility of JUnit 5 tests](/recipes/java/testing/cleanup/testsshouldnotbepublic.md) - _Remove `public` and optionally `protected` modifiers from methods with `@Test`, `@ParameterizedTest`, `@RepeatedTest`, `@TestFactory`, `@BeforeEach`, `@AfterEach`, `@BeforeAll`, or `@AfterAll`. They no longer have to be public visibility to be usable by JUnit 5._ * [Replace Mockito 1.x `anyString()`/`any()` with `nullable(Class)`](/recipes/java/testing/mockito/anytonullable.md) - _Since Mockito 2.10 `anyString()` and `any()` no longer matches null values. Use `nullable(Class)` instead._ * [Replace `verifyZeroInteractions()` with `verifyNoMoreInteractions()`](/recipes/java/testing/mockito/verifyzerotonomoreinteractions.md) - _Replaces `verifyZeroInteractions()` with `verifyNoMoreInteractions()` in Mockito tests when migration when using a Mockito version < 3.x._ + ## rewrite-toml * [Create TOML file](/recipes/toml/createtomlfile.md) - _Create a new TOML file._ + ## rewrite-vulncheck * [Use VulnCheck Exploit Intelligence to fix vulnerabilities](/recipes/vulncheck/fixvulncheckvulnerabilities.md) - _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 VulnCheck Vulnerability Intelligence. The recipe has an option to limit fixes to only those vulnerabilities that have evidence of exploitation at various levels of severity._ + ## rewrite-xml * [Create XML file](/recipes/xml/createxmlfile.md) - _Create a new XML file._ * [XML style Auto-detection debug](/recipes/xml/style/autodetectdebug.md) - _Runs XML Autodetect and records the results in data tables and search markers. A debugging tool for figuring out why XML documents get styled the way they do._ + ## rewrite-yaml * [Copy YAML value](/recipes/yaml/copyvalue.md) - _Copies a YAML value from one key to another. The existing key/value pair remains unaffected by this change. Attempts to merge the copied value into the new key if it already exists. Attempts to create the new key if it does not exist._ diff --git a/docs/reference/standalone-recipes.md b/docs/reference/standalone-recipes.md index feb4db18a3..acf97ca2bd 100644 --- a/docs/reference/standalone-recipes.md +++ b/docs/reference/standalone-recipes.md @@ -6,7 +6,8 @@ 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: 1673 +Total standalone recipes: 1678 + ## other @@ -253,6 +254,7 @@ Total standalone recipes: 1673 * [Ensures presets are safe to use](/recipes/codemods/migrate/mui/presetsafe.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#preset-safe)._ * [Expect space before the type declaration in the named tuple](/recipes/codemods/format/typenamedtuplespacing.md) - _Expect space before the type declaration in the named tuple See [rule details](https://eslint.style/rules/default/type-named-tuple-spacing)_ * [Find GitHub action secret references](/recipes/github/findgithubactionsecretreferences.md) - _Help identify and inventory your GitHub secrets that are being used in GitHub actions._ +* [Find Node.js dependency](/recipes/javascript/dependencies/find-dependency.md) - _Finds dependencies in a project's `package.json`. Can find both direct dependencies and dependencies that transitively include the target package. This recipe is commonly used as a precondition for other recipes._ * [Find Spring Web dependency](/recipes/java/spring/http/springwebdependency.md) - _Find compile scoped Spring Web dependency for Maven and Gradle, both direct and transitive._ * [Find Virtual Thread opportunities](/recipes/java/migrate/lang/findvirtualthreadopportunities.md) - _Find opportunities to convert existing code to use Virtual Threads._ * [Find hardcoded IP addresses](/recipes/kubernetes/search/findharcodedipaddresses.md) - _Find hardcoded IP address anywhere in text-based files._ @@ -323,8 +325,10 @@ Total standalone recipes: 1673 * [Migrate from tibdex/github-app-token to actions/create-github-app-token](/recipes/github/migratetibdexgithubapptokentoactions.md) - _Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case._ * [Migrate the use of TaskExecutors with blocking IO](/recipes/java/micronaut/updateblockingtaskexecutors.md) - _This recipe will any usage of TaskExecutors.IO to TaskExecutors.BLOCKING in order to be compatible with virtual threads._ * [Migrate to Android Gradle Plugin 8.7](/recipes/android/migratetoandroidgradleplugin_8_7.md) - _Recipes to migrate to Android Gradle Plugin version 8.7._ +* [Migrate to Hibernate 7.1.x](/recipes/hibernate/migratetohibernate71.md) - _This recipe will apply changes commonly needed when migrating to Hibernate 7.0.x._ * [Migrate to Hibernate Validator 8.0.x](/recipes/hibernate/validator/hibernatevalidator_8_0.md) - _This recipe will apply changes commonly needed when migrating to Hibernate Validator 8.0.x._ * [Migrate to IBM Semeru Runtimes](/recipes/java/migrate/ibmsemeru.md) - _This recipe will apply changes commonly needed when upgrading Java versions. The solutions provided in this list are solutions only available in IBM Semeru Runtimes._ +* [Migrate to JasperReports 6](/recipes/jasperreports/upgradetojasperreports6.md) - _Migrates JasperReports from 5.x to 6.x with the new exporter API, XLS to XLSX move, and removal of Spring JasperReports views._ * [Migrate to Java 25](/recipes/java/migrate/upgradetojava25.md) - _This recipe will apply changes commonly needed when migrating to Java 25. This recipe will also replace deprecated API with equivalents when there is a clear migration strategy. Build files will also be updated to use Java 25 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 25._ * [Migrate to Kubernetes API v1.32](/recipes/kubernetes/migrate/migratetoapiv1_32.md) - _This recipe will apply changes commonly needed when migrating to Kubernetes API v1.32._ * [Migrate to LaunchDarkly 7.x](/recipes/featureflags/launchdarkly/upgradelaunchdarkly7.md) - _This recipe will apply changes commonly needed when migrating to LaunchDarkly 7.x._ @@ -411,7 +415,6 @@ Total standalone recipes: 1673 * [Remove Develocity](/recipes/gradle/plugins/removedevelocity.md) - _Remove the Develocity plugin and configuration from the Gradle build and settings files._ * [Remove duplicate object keys](/recipes/javascript/migrate/es6/remove-duplicate-object-keys.md) - _Remove duplicate keys in object literals, keeping only the last occurrence (last-wins semantics)._ * [Remove system props and add them to the `sx` prop](/recipes/codemods/migrate/mui/systemprops.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#system-props)._ -* [Remove usage of deprecated `process.features.tls_*` properties](/recipes/node/migrate/process/remove-usage-of-features-tls-underscore_constants.md) - _Remove references to deprecated `process.features.tls_*` properties, replace with `process.features.tls`._ * [Removes `Unstyled` suffix from base components](/recipes/codemods/migrate/mui/baseremoveunstyledsuffix.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#base-remove-unstyled-suffix)._ * [Removes `component` prop from base components](/recipes/codemods/migrate/mui/baseremovecomponentprop.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#base-remove-component-prop)._ * [Removes `imgProps` prop from Avatar component](/recipes/codemods/migrate/mui/joyavatarremoveimgprops.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#joy-avatar-remove-imgProps)._ @@ -434,11 +437,9 @@ Total standalone recipes: 1673 * [Replace OSSRH secrets with Sonatype secrets](/recipes/github/replaceossrhsecretswithsonatype.md) - _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._ * [Replace `hudson.Util.getPastTimeString` with `getTimeSpanString`](/recipes/jenkins/migrate/hudson/utilgetpasttimestringtogettimespanstring.md) - _`hudson.Util.getPastTimeString` has been [deprecated](https://github.com/jenkinsci/jenkins/pull/4174) since the [2.204.1 LTS release](https://www.jenkins.io/changelog-stable/#v2.204.1) on 2019-12-18._ * [Replace `org.apache.commons.lang3.Validate#notNull` with `Objects#requireNonNull`](/recipes/staticanalysis/replaceapachecommonslang3validatenotnullwithobjectsrequirenonnull.md) - _Replace `org.apache.commons.lang3.Validate.notNull(..)` with `Objects.requireNonNull(..)`._ -* [Replace deprecated `Buffer.slice()` with `Buffer.subarray()`](/recipes/node/migrate/buffer/replace-deprecated-slice.md) - _Replace deprecated `buffer.slice()` calls with `buffer.subarray()` for compatibility with Uint8Array.prototype.slice()._ -* [Replace deprecated `new crypto.Hash()` and `new crypto.Hmac()` with factory methods](/recipes/node/migrate/crypto/replace-hash-constructor.md) - _Replace deprecated `new crypto.Hash(algorithm)` constructor calls with `crypto.createHash(algorithm)` and `new crypto.Hmac(algorithm, key)` with `crypto.createHmac(algorithm, key)` factory methods._ -* [Replace deprecated `util._extend()` with `Object.assign()`](/recipes/node/migrate/util/replace-util-extend.md) - _Replace deprecated `util._extend(target, source)` calls with `Object.assign(target, source)` which preserves the mutation behavior._ -* [Replace deprecated `util.isX()` methods with native JavaScript](/recipes/node/migrate/util/use-native-type-checking-methods.md) - _The `util` module's type-checking methods have been removed in Node 22._ -* [Replace deprecated `util.log()` with `console.log()`](/recipes/node/migrate/util/replace-util-log.md) - _Replace deprecated `util.log()` calls with `console.log()`. Note: `util.log()` included timestamps, but `console.log()` does not._ +* [Replace deprecated `SlowBuffer` with `Buffer.allocUnsafeSlow()`](/recipes/node/migrate/buffer/replace-slow-buffer.md) - _Replace deprecated `new SlowBuffer(size)` calls with `Buffer.allocUnsafeSlow(size)`. SlowBuffer was used to create un-pooled Buffer instances, but has been removed in favor of the explicit Buffer.allocUnsafeSlow() method._ +* [Replace deprecated `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` with `fs.constants.*`](/recipes/node/migrate/fs/replace-fs-access-constants.md) - _Replace deprecated file access constants (`fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK`) with their equivalents from `fs.constants`. These constants were removed in Node.js v24+ and should be accessed through the constants namespace._ +* [Replace deprecated `fs.Stats` constructor with object literal](/recipes/node/migrate/fs/replace-stats-constructor.md) - _Replace deprecated `new fs.Stats()` constructor calls with an object literal containing Stats properties initialized to undefined._ * [Replace lodash and underscore array functions with native JavaScript](/recipes/codemods/migrate/lodash/lodashunderscorearray.md) - _- `_.head(x)` -> `x[0]` - `_.head(x, n)` -> `x.slice(n)` - `_.first` (alias for `_.head`) - `_.tail(x)` -> `x.slice(1)` - `_.tail(x, n)` -> `x.slice(n)` - `_.rest` (alias for `_.tail`) - `_.last(x)` -> `x[x.length - 1]` - `_.last(x, n)` -> `x.slice(x.length - n)`_ * [Replace lodash and underscore function functions with native JavaScript](/recipes/codemods/migrate/lodash/lodashunderscorefunction.md) - _- `_.bind(fn, obj, ...x)` -> `fn.bind(obj, ...x)` - `_.partial(fn, a, b);` -> `(...args) => fn(a, b, ...args)`_ * [Replace lodash and underscore object functions with native JavaScript](/recipes/codemods/migrate/lodash/lodashunderscoreobjects.md) - _- `_.clone(x)` -> `{ ...x }` - `_.extend({}, x, y)` -> `{ ...x, ...y }` - `_.extend(obj, x, y)` -> `Object.assign(obj, x, y)` - `_.keys(x)` -> `Object.keys(x)` - `_.pairs(x)` -> `Object.entries(x)` - `_.values(x)` -> `Object.values(x)`_ @@ -562,12 +563,13 @@ Total standalone recipes: 1673 * [Updates withMobileDialog higher-order component](/recipes/codemods/migrate/mui/withmobiledialog.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#with-mobile-dialog)._ * [Updates withWidth higher-order component](/recipes/codemods/migrate/mui/withwidth.md) - _See Material UI codemod projects for more [details](https://github.com/mui/material-ui/tree/master/packages/mui-codemod#with-width)._ * [Upgrade Apache Maven Parent](/recipes/devcenter/upgrademavenparent.md) - _Upgrades the Apache Maven parent POM to the latest version._ -* [Upgrade Apache Maven Parent](/recipes/devcenter/upgrademavenpluginsparent.md) - _Upgrades the Apache Maven parent POM to the latest version._ -* [Upgrade Apache Maven Parent](/recipes/devcenter/upgrademavensharedparent.md) - _Upgrades the Apache Maven parent POM to the latest version._ * [Upgrade Apache Parent POM](/recipes/devcenter/upgradeapacheparent.md) - _Upgrades the Apache parent POM to the latest version._ * [Upgrade ECMAScript 5 to ECMAScript 6](/recipes/codemods/ecmascript/5to6/ecmascript6bestpractices.md) - _A collection of common ECMAScript 5 to ECMAScript 6 updates._ +* [Upgrade Maven Plugins Parent](/recipes/devcenter/upgrademavenpluginsparent.md) - _Upgrades the Apache Maven parent POM to the latest version._ +* [Upgrade Maven Shared Parent](/recipes/devcenter/upgrademavensharedparent.md) - _Upgrades the Apache Maven parent POM to the latest version._ * [Upgrade Micrometer](/recipes/micrometer/upgrademicrometer.md) - _This recipe will apply changes commonly needed when migrating Micrometer._ * [Upgrade Quarkus Universe BOM](/recipes/devcenter/upgradequarkusuniversebom.md) - _Upgrades the Quarkus Universe BOM parent to the latest version._ +* [Upgrade npm dependency version](/recipes/javascript/dependencies/upgrade-dependency-version.md) - _Upgrades the version of a dependency in `package.json` and updates the lock file by running the package manager._ * [Upgrade to .NET 6.0 using upgrade-assistant](/recipes/dotnet/migratetonet6.md) - _Run [upgrade-assistant upgrade](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to upgrade projects to .NET 6.0._ * [Upgrade to .NET 7.0 using upgrade-assistant](/recipes/dotnet/migratetonet7.md) - _Run [upgrade-assistant upgrade](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to upgrade projects to .NET 7.0._ * [Upgrade to .NET 8.0 using upgrade-assistant](/recipes/dotnet/migratetonet8.md) - _Run [upgrade-assistant upgrade](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to upgrade projects to .NET 8.0._ @@ -576,6 +578,7 @@ Total standalone recipes: 1673 * [Upgrade to Axonframework 4.x Jakarta](/recipes/org/axonframework/migration/upgradeaxonframework_4_jakarta.md) - _Migration file to upgrade from an Axon Framework Javax-specific project to Jakarta._ * [Upgrade to Axonframework 4.x Javax](/recipes/org/axonframework/migration/upgradeaxonframework_4_javax.md) - _Migration file to upgrade an Axon Framework Javax-specific project and remain on Javax._ * [Upgrade to Cucumber-JVM 7.x](/recipes/cucumber/jvm/upgradecucumber7x.md) - _Upgrade to Cucumber-JVM 7.x from any previous version._ +* [Upgrade to Node.js 24](/recipes/node/migrate/upgrade-node-24.md) - _Migrate deprecated APIs for Node.js 24 compatibility. Includes all migrations from Node.js 22, plus Node 23 and Node 24 deprecations._ * [Upgrade to Quarkus 3.26](/recipes/devcenter/upgradequarkus3_x.md) - _Upgrades Quarkus dependencies to version 3.26.x, including core, extensions, and tooling._ * [Upgrade to the latest Timefold Solver](/recipes/ai/timefold/solver/migration/tolatest.md) - _Replace all your calls to deleted/deprecated types and methods of Timefold Solver with their proper alternatives._ * [Use commons-lang3 API Plugin](/recipes/jenkins/commonslang3toapiplugin.md) - _Updates `pom.xml` to depend on `commons-lang3-api` and exclude `commons-lang3` where it is brought in transitively._ @@ -583,6 +586,7 @@ Total standalone recipes: 1673 * [Use expect from @storybook/jest](/recipes/codemods/cleanup/storybook/usestorybookexpect.md) - _Use expect from @storybook/jest See rule details for [storybook/use-storybook-expect](https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/use-storybook-expect.md)_ * [Use local variable type inference](/recipes/java/migrate/lang/usevar.md) - _Apply local variable type inference (`var`) for primitives and objects. These recipes can cause unused imports, be advised to run `org.openrewrite.java.RemoveUnusedImports afterwards._ * [Use modernized `java.util` APIs](/recipes/java/migrate/util/javautilapis.md) - _Certain java util APIs have been introduced and are favored over previous APIs._ +* [Use object property shorthand](/recipes/javascript/cleanup/use-object-property-shorthand.md) - _Simplifies object properties where the property name and value/variable name are the same (e.g., `{ x: x }` becomes `{ x }`). Applies to both destructuring patterns and object literals._ * [Wicket best practices](/recipes/org/apache/wicket/bestpractices.md) - _Applies Wicket best practices such as minimizing anonymous inner classes and upgrading to the latest version._ * [disallow dynamic slot name](/recipes/codemods/cleanup/svelte/nodynamicslotname.md) - _disallow dynamic slot name See rule details for [svelte/no-dynamic-slot-name](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dynamic-slot-name/)_ * [disallow spaces around equal signs in attribute](/recipes/codemods/cleanup/svelte/nospacesaroundequalsignsinattribute.md) - _disallow spaces around equal signs in attribute See rule details for [svelte/no-spaces-around-equal-signs-in-attribute](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-spaces-around-equal-signs-in-attribute/)_ @@ -601,6 +605,7 @@ Total standalone recipes: 1673 * [require class directives instead of ternary expressions](/recipes/codemods/cleanup/svelte/preferclassdirective.md) - _require class directives instead of ternary expressions See rule details for [svelte/prefer-class-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-class-directive/)_ * [require or disallow a space before tag's closing brackets](/recipes/codemods/cleanup/svelte/htmlclosingbracketspacing.md) - _require or disallow a space before tag's closing brackets See rule details for [svelte/html-closing-bracket-spacing](https://sveltejs.github.io/eslint-plugin-svelte/rules/html-closing-bracket-spacing/)_ * [require style directives instead of style attribute](/recipes/codemods/cleanup/svelte/preferstyledirective.md) - _require style directives instead of style attribute See rule details for [svelte/prefer-style-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-style-directive/)_ + ## rewrite-ai-search * [Find comments' language distribution](/recipes/ai/findcommentslanguage.md) - _Finds all comments and uses AI to predict which language the comment is in._ @@ -608,20 +613,24 @@ Total standalone recipes: 1673 * [Get embeddings for code snippets in code](/recipes/ai/research/getcodeembedding.md) - _This recipe calls an AI model to get an embedding for either classes or methods which can then be used for downstream tasks._ * [Get recommendations](/recipes/ai/research/getrecommendations.md) - _This recipe calls an AI model to get recommendations for modernizing the code base by looking at a sample of method declarations._ * [List all methods used](/recipes/ai/listallmethodsused.md) - _List all methods used in any Java source file._ + ## rewrite-all * [Find call graph](/recipes/core/findcallgraph.md) - _Produces a data table where each row represents a method call._ * [Find duplicate source files](/recipes/core/findduplicatesourcefiles.md) - _Record the presence of LSTs with duplicate paths, indicating that the same file was parsed more than once._ * [Language composition report](/recipes/core/languagecomposition.md) - _Counts the number of lines of the various kinds of source code and data formats parsed by OpenRewrite. Comments are not included in line counts. This recipe emits its results as two data tables, making no changes to any source file. One data table is per-file, the other is per-repository._ + ## rewrite-analysis * [Control flow visualization](/recipes/analysis/controlflow/controlflowvisualization.md) - _Visualize the control flow of a Java program._ * [Find method usages](/recipes/analysis/search/findmethods.md) - _Find method usages by pattern._ * [Finds flow between two methods](/recipes/analysis/search/findflowbetweenmethods.md) - _Takes two patterns for the start/end methods to find flow between._ * [URIs created with an HTTP scheme](/recipes/analysis/search/uricreatedwithhttpscheme.md) - _This is a sample recipe demonstrating a simple application of local data flow analysis._ + ## rewrite-angular * [Find Angular component](/recipes/angular/search/findangularcomponent.md) - _Locates usages of Angular components across the codebase including template elements and other references. If `componentName` is `null`, finds all Angular components._ + ## rewrite-apache * [Migrate from Plexus `AbstractLogEnabled` to SLF4J](/recipes/codehaus/plexus/abstractlogenabledtoslf4j.md) - _Introduce a SLF4J `Logger` field and replace calls to `getLogger()` with calls to the field._ @@ -634,35 +643,42 @@ Total standalone recipes: 1673 * [`MavenSharedStringUtils` Refaster recipes](/recipes/apache/maven/shared/mavensharedstringutilsrecipes.md) - _Refaster template recipes for `org.openrewrite.apache.maven.shared.MavenSharedStringUtils`._ * [`PlexusFileUtils` Refaster recipes](/recipes/codehaus/plexus/plexusfileutilsrecipes.md) - _Refaster template recipes for `org.openrewrite.codehaus.plexus.PlexusFileUtils`._ * [`PlexusStringUtils` Refaster recipes](/recipes/codehaus/plexus/plexusstringutilsrecipes.md) - _Refaster template recipes for `org.openrewrite.codehaus.plexus.PlexusStringUtils`._ + ## rewrite-azul * [Eliminate unused classes](/recipes/azul/eliminateunusedclasses.md) - _Deprecate and later delete classes that are unused, as detected by Azul Intelligence Cloud._ * [Find reachable methods](/recipes/azul/search/findreachablemethods.md) - _Find all methods defined in the repository's source code that are reachable._ + ## rewrite-circleci * [Install an orb](/recipes/circleci/installorb.md) - _Install a CircleCI [orb](https://circleci.com/docs/2.0/orb-intro/) if it is not already installed._ * [Update CircleCI image](/recipes/circleci/updateimage.md) - _See the list of [pre-built CircleCI images](https://circleci.com/docs/2.0/circleci-images/)._ + ## rewrite-codemods * [Biome recommendations](/recipes/codemods/biome.md) - _Run [Biome](https://biomejs.dev/) recommended settings on your projects._ * [Lint UI5 projects with UI5 linter](/recipes/codemods/ui5.md) - _Runs the [UI5 Linter](https://github.com/SAP/ui5-linter), a static code analysis tool for UI5 projects. It checks JavaScript, TypeScript, XML, JSON, and other files in your project and reports findings._ * [React i18next internationalization](/recipes/codemods/reacti18next.md) - _Automatically internationalizes React applications by extracting hardcoded strings and replacing them with [react-i18next](https://react.i18next.com) translation calls. Handles JSX text, attributes, and template literals with variables. Creates and updates a translation JSON file with extracted strings._ * [Run Putout](/recipes/codemods/putout.md) - _Run [Putout](https://github.com/coderaiser/putout) on your projects._ + ## rewrite-compiled-analysis * [Change `List#add` to `List#plus` and verify.](/recipes/compiled/verification/changelistmethodandverify.md) - _We know this won't compile._ + ## rewrite-comprehension * [Code comprehension with unit test examples](/recipes/knowledge/comprehendcodewithunittestexamples.md) - _First runs a scanning recipe to grab all unit tests, then supplements the unit tests examples for the AI-generate descriptions._ * [Improve recipe descriptors](/recipes/moddy/improverecipedescriptors.md) - _Improving recipe display names and descriptions in turn improves Moddy._ * [Search for a class that uses the given design technique](/recipes/knowledge/search/searchdesigntechnique.md) - _Search for a class that uses the given design technique._ * [Update the README for an OpenRewrite recipe repository](/recipes/knowledge/docs/updateopenrewritereadme.md) - _Updates the README periodically to reflect the latest contents of recipe projects._ + ## rewrite-concourse * [Change resource version](/recipes/concourse/changeresourceversion.md) - _Pin or unpin a resource to a particular version._ * [Find pinned resources by type](/recipes/concourse/search/findpinnedresource.md) - _Find resources of a particular type that have pinned versions._ * [Find resource](/recipes/concourse/findresource.md) - _Find a Concourse resource by name._ * [Update git resource `source.uri` references](/recipes/concourse/updategitresourceuri.md) - _Update git resource `source.uri` URI values to point to a new URI value._ + ## rewrite-core * [Add entries to `.gitignore`](/recipes/core/addtogitignore.md) - _Adds entries to the project's `.gitignore` file. If no `.gitignore` file exists, one will be created. Existing entries that match will not be duplicated._ @@ -688,11 +704,13 @@ Total standalone recipes: 1673 * [Repository contains file](/recipes/search/repositorycontainsfile.md) - _Intended to be used primarily as a precondition for other recipes, this recipe checks if a repository contains a specific file or files matching a pattern. If present all files in the repository are marked with a `SearchResult` marker. If you want to get only the matching file as a search result, use `FindSourceFiles` instead._ * [Set file permission attributes](/recipes/core/setfilepermissions.md) - _Set a file's read, write and executable permission attributes._ * [Show Git source control metadata](/recipes/core/findgitprovenance.md) - _List out the contents of each unique `GitProvenance` marker in the set of source files. When everything is working correctly, exactly one such marker should be printed as all source files are expected to come from the same repository / branch / commit hash._ + ## rewrite-cryptography * [Find RSA key generation parameters](/recipes/cryptography/findrsakeygenparameters.md) - _Finds RSAKeyGenParameterSpec instantiations and extracts their parameter values into a data table._ * [Find SSL socket configuration parameters](/recipes/cryptography/findsslsocketparameters.md) - _Finds SSLSocket setter method invocations and extracts their parameter values into a data table._ * [Find Security class modifications](/recipes/cryptography/findsecuritymodifications.md) - _Finds invocations of java.security.Security methods that modify security configuration such as removeProvider, addProvider, insertProviderAt, setProperty, and removeProperty._ + ## rewrite-csharp * [A class that provides Equals(T) should implement IEquatable<T>](/recipes/csharp/recipes/meziantou/analyzer/equalityshouldbecorrectlyimplementedma0077.md) - __ @@ -1265,18 +1283,23 @@ Total standalone recipes: 1673 * [[deprecated] Use explicit type instead of 'var' (foreach variable)](/recipes/csharp/recipes/roslynator/analyzers/useexplicittypeinsteadofvarinforeachrcs1009.md) - __ * [[deprecated] Use explicit type instead of 'var' (when the type is not obvious)](/recipes/csharp/recipes/roslynator/analyzers/useexplicittypeinsteadofvarrcs1008.md) - __ * [[deprecated] Use explicit type instead of 'var' (when the type is obvious)](/recipes/csharp/recipes/roslynator/analyzers/useexplicittypeinsteadofvarrcs1012.md) - __ + ## rewrite-devcenter * [Vulnerabilities status](/recipes/devcenter/dependencyvulnerabilitycheck.md) - _Determine the current state of a repository relative to its vulnerabilities._ + ## rewrite-docker * [Find uses of docker base images](/recipes/docker/search/finddockerimageuses.md) - _Produce an impact analysis of base images used in Dockerfiles, .gitlab-ci files, Kubernetes Deployment file, etc._ + ## rewrite-dotnet * [Analyze a .NET project using upgrade-assistant](/recipes/dotnet/upgradeassistantanalyze.md) - _Run [upgrade-assistant analyze](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) across a repository to analyze changes required to upgrade projects to a newer version of .NET. This recipe will generate an `org.openrewrite.dotnet.UpgradeAssistantAnalysis` data table containing the report details._ + ## rewrite-dropwizard * [Remove `super` calls when the class does not extend another class](/recipes/java/dropwizard/method/removeunnecessarysupercalls.md) - _Removes calls to `super(...)` or `super.someMethod(...)` if the class does not have a real superclass besides `java.lang.Object`._ + ## rewrite-feature-flags * [Change the default value for feature key](/recipes/featureflags/launchdarkly/changevariationdefault.md) - _Change the default value for `Variation` invocations for feature key._ @@ -1294,8 +1317,10 @@ Total standalone recipes: 1673 * [Remove OpenFeature's `getIntegerValue` for feature key](/recipes/featureflags/openfeature/removegetintegervalue.md) - _Replace `getIntegerValue()` invocations for `featureKey` with `replacementValue`, and simplify constant if branch execution._ * [Remove OpenFeature's `getStringValue` for feature key](/recipes/featureflags/openfeature/removegetstringvalue.md) - _Replace `getStringValue()` invocations for `featureKey` with `replacementValue`, and simplify constant if branch execution._ * [Remove Unleash's `isEnabled` for feature key](/recipes/featureflags/unleash/removeisenabled.md) - _Replace `isEnabled()` invocations for `featureKey` with `replacementValue`, and simplify constant if branch execution._ + ## rewrite-github-actions +* [Add cooldown periods to Dependabot configuration](/recipes/github/adddependabotcooldown.md) - _Adds a `cooldown` section to each update configuration in Dependabot files. Supports `default-days`, `semver-major-days`, `semver-minor-days`, `semver-patch-days`, `include`, and `exclude` options. This implements a security best practice where dependencies are not immediately adopted upon release, allowing time for security vendors to identify potential supply chain compromises. Cooldown applies only to version updates, not security updates. [Read more about dependency cooldowns](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns). [The available configuration options for dependabot are listed on GitHub](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates)._ * [Add cron workflow trigger](/recipes/github/addcrontrigger.md) - _The `schedule` [event](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events) allows you to trigger a workflow at a scheduled time._ * [Cancel in-progress workflow when it is triggered again](/recipes/github/autocancelinprogressworkflow.md) - _When a workflow is already running and would be triggered again, cancel the existing workflow. See [`styfle/cancel-workflow-action`](https://github.com/styfle/cancel-workflow-action) for details._ * [Find jobs missing timeout](/recipes/github/findmissingtimeout.md) - _Find GitHub Actions jobs missing a timeout._ @@ -1313,6 +1338,7 @@ Total standalone recipes: 1673 * [Use `actions/setup-java` `temurin` distribution](/recipes/github/setupjavaadoptopenjdktotemurin.md) - _Adopt OpenJDK got moved to Eclipse Temurin and won't be updated anymore. It is highly recommended to migrate workflows from adopt to temurin to keep receiving software and security updates. See more details in the [Good-bye AdoptOpenJDK post](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/)._ * [Use `actions/setup-java` `temurin` distribution as they are cached in hosted runners](/recipes/github/prefertemurindistributions.md) - _[Host runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources/) include Temurin by default as part of the [hosted tool cache](https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#hosted-tool-cache). Using Temurin speeds up builds as there is no need to download and configure the Java SDK with every build._ * [Use `secrets: inherit` if possible](/recipes/github/prefersecretsinheritworkflow.md) - _Pass all secrets to a reusable workflow using `secrets: inherit`. See [Simplify using secrets with reusable workflows](https://github.blog/changelog/2022-05-03-github-actions-simplify-using-secrets-with-reusable-workflows/) for details._ + ## rewrite-gitlab * [Add GitLab component](/recipes/gitlab/addcomponent.md) - _Add a GitLab component to an existing list, or add a new list where none was present._ @@ -1323,6 +1349,7 @@ Total standalone recipes: 1673 * [Find GitLab Component](/recipes/gitlab/search/findcomponent.md) - _Find a GitLab Component in use._ * [Find GitLab Template](/recipes/gitlab/search/findtemplate.md) - _Find a GitLab Template in use._ * [Remove GitLab template](/recipes/gitlab/removetemplate.md) - _Remove a GitLab template from use._ + ## rewrite-gradle * [Add Gradle platform dependency](/recipes/gradle/addplatformdependency.md) - _Add a gradle platform dependency to a `build.gradle` file in the correct configuration based on where it is used._ @@ -1358,12 +1385,14 @@ Total standalone recipes: 1673 * [Upgrade transitive Gradle dependencies](/recipes/gradle/upgradetransitivedependencyversion.md) - _Upgrades the version of a transitive dependency in a Gradle build file. There are many ways to do this in Gradle, so the mechanism for upgrading a transitive dependency must be considered carefully depending on your style of dependency management._ * [Use HTTPS for repositories](/recipes/gradle/security/usehttpsforrepositories.md) - _Use HTTPS for repository URLs._ * [Use `Map` notation for Gradle dependency declarations](/recipes/gradle/dependencyusemapnotation.md) - _In Gradle, dependencies can be expressed as a `String` like `"groupId:artifactId:version"`, or equivalently as a `Map` like `group: 'groupId', name: 'artifactId', version: 'version'` (groovy) or `group = "groupId", name = "artifactId", version = "version"` (kotlin). This recipe replaces dependencies represented as `Strings` with an equivalent dependency represented as a `Map`._ + ## rewrite-groovy * [Format Groovy code](/recipes/groovy/format/autoformat.md) - _Format Groovy code using a standard comprehensive set of Groovy formatting recipes._ * [Groovy GString curly braces](/recipes/groovy/format/gstringcurlybraces.md) - _In Groovy [GStrings](https://docs.groovy-lang.org/latest/html/api/groovy/lang/GString.html), curly braces are optional for single variable expressions. This recipe adds them, so that the expression is always surrounded by curly braces._ * [Move a closure which is the last argument of a method invocation out of parentheses](/recipes/groovy/format/omitparenthesesforlastargumentlambda.md) - _Groovy allows a shorthand syntax that allows a closure to be placed outside of parentheses._ * [Stylize Groovy code to omit parentheses](/recipes/groovy/format/omitparenthesesformat.md) - _Omit parentheses for last argument lambdas in Groovy code._ + ## rewrite-hcl * [Blank lines](/recipes/hcl/format/blanklines.md) - _Add and/or remove blank lines._ @@ -1377,11 +1406,13 @@ Total standalone recipes: 1673 * [Replace legacy attribute index syntax](/recipes/hcl/replacelegacyattributeindexsyntax.md) - _Replace legacy attribute index syntax (`.0`) with the new syntax (`[0]`)._ * [Spaces](/recipes/hcl/format/spaces.md) - _Format whitespace in HCL code._ * [Tabs and indents](/recipes/hcl/format/tabsandindents.md) - _Format tabs and indents in HCL code._ + ## rewrite-hibernate * [Find JPQL definitions](/recipes/hibernate/search/findjpqldefinitions.md) - _Find Java Persistence Query Language definitions in the codebase._ * [Migrate @JdbcType to @JdbcTypeCode](/recipes/hibernate/update70/migratejdbctypetojdbctypecode.md) - _In Hibernate 7.0, various JDBC types were moved to internal packages. Use @JdbcTypeCode with SqlTypes constants instead of @JdbcType with specific classes._ * [Migrate `UserType` to Hibernate 6](/recipes/hibernate/migrateusertype.md) - _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._ + ## rewrite-java * [Add method parameter to a method declaration](/recipes/java/addmethodparameter.md) - _Adds a new method parameter to an existing method declaration._ @@ -1433,6 +1464,7 @@ Total standalone recipes: 1673 * [Typecast parentheses padding](/recipes/java/format/typecastparenpad.md) - _Fixes whitespace padding between a typecast type identifier and the enclosing left and right parenthesis. For example, when configured to remove spacing, `( int ) 0L;` becomes `(int) 0L;`._ * [Update source positions](/recipes/java/updatesourcepositions.md) - _Calculate start position and length for every LST element._ * [Wrapping and braces](/recipes/java/format/wrappingandbraces.md) - _Format line wraps and braces in Java code._ + ## rewrite-java-dependencies * [Dependency insight for Gradle and Maven](/recipes/java/dependencies/dependencyinsight.md) - _Finds dependencies, including transitive dependencies, in both Gradle and Maven projects. Matches within all Gradle dependency configurations and Maven scopes._ @@ -1446,6 +1478,7 @@ Total standalone recipes: 1673 * [Module has dependency](/recipes/java/dependencies/search/modulehasdependency.md) - _Searches for both Gradle and Maven modules that have a dependency matching the specified groupId and artifactId. Places a `SearchResult` marker on all sources within a module with a matching dependency. This recipe is intended to be used as a precondition for other recipes. For example this could be used to limit the application of a spring boot migration to only projects that use spring-boot-starter, limiting unnecessary upgrading. If the search result you want is instead just the build.gradle(.kts) or pom.xml file applying the plugin, use the `FindDependency` recipe instead._ * [Repository has dependency](/recipes/java/dependencies/search/repositoryhasdependency.md) - _Searches for both Gradle and Maven modules that have a dependency matching the specified groupId and artifactId. Places a `SearchResult` marker on all sources within a repository with a matching dependency. This recipe is intended to be used as a precondition for other recipes. For example this could be used to limit the application of a spring boot migration to only projects that use a springframework dependency, limiting unnecessary upgrading. If the search result you want is instead just the build.gradle(.kts) or pom.xml file applying the plugin, use the `FindDependency` recipe instead._ * [Upgrade transitive Gradle or Maven dependencies](/recipes/java/dependencies/upgradetransitivedependencyversion.md) - _Upgrades the version of a transitive dependency in a Maven pom.xml or Gradle build.gradle. Leaves direct dependencies unmodified. Can be paired with the regular Upgrade Dependency Version recipe to upgrade a dependency everywhere, regardless of whether it is direct or transitive._ + ## rewrite-java-security * [Dependency insight for C#](/recipes/csharp/dependencies/dependencyinsight.md) - _Finds dependencies in `*.csproj` and `packages.config`._ @@ -1464,12 +1497,14 @@ Total standalone recipes: 1673 * [SecureRandom seeds are not constant or predictable](/recipes/java/security/securerandomprefersdefaultseed.md) - _Remove `SecureRandom#setSeed(*)` method invocations having constant or predictable arguments._ * [Software bill of materials](/recipes/java/dependencies/softwarebillofmaterials.md) - _Produces a software bill of materials (SBOM) for a project. An SBOM is a complete list of all dependencies used in a project, including transitive dependencies. The produced SBOM is in the [CycloneDX](https://cyclonedx.org/) XML format. Supports Gradle and Maven. Places a file named sbom.xml adjacent to the Gradle or Maven build file._ * [Upgrade C# dependency versions](/recipes/csharp/dependencies/upgradedependencyversion.md) - _Upgrades dependencies in `*.csproj` and `packages.config`._ + ## rewrite-jenkins * [Add XML declaration to Jelly files](/recipes/jenkins/addjellyxmldeclaration.md) - _Ensure the XML declaration `<?jelly escape-by-default='true'?>` is present in all `.jelly` files._ * [Add plugin developer team to CODEOWNERS](/recipes/jenkins/github/addteamtocodeowners.md) - _Adds the `{artifactId}-plugin-developers` team to all files in `.github/CODEOWNERS` if absent._ * [Create `index.jelly` if it doesn't exist](/recipes/jenkins/createindexjelly.md) - _Jenkins tooling [requires](https://github.com/jenkinsci/maven-hpi-plugin/pull/302) `src/main/resources/index.jelly` exists with a description._ * [Is the project a Jenkins plugin?](/recipes/jenkins/isjenkinsplugin.md) - _Checks if the project is a Jenkins plugin by the presence of a managed version of `jenkins-core`._ + ## rewrite-json * [Add value to JSON Object](/recipes/json/addkeyvalue.md) - _Adds a `value` at the specified `keyPath` with the specified `key`, if the key doesn't already exist._ @@ -1481,6 +1516,7 @@ Total standalone recipes: 1673 * [Format JSON](/recipes/json/format/autoformat.md) - _Format JSON code using a standard comprehensive set of JSON formatting recipes._ * [JSON indent](/recipes/json/format/indents.md) - _Format tabs and indents in JSON._ * [JSON new lines](/recipes/json/format/wrappingandbraces.md) - _Split members into separate lines in JSON._ + ## rewrite-kotlin * [Find Kotlin sources and collect data metrics](/recipes/kotlin/findkotlinsources.md) - _Use data table to collect source files types and counts of files with extensions `.kt`._ @@ -1490,6 +1526,7 @@ Total standalone recipes: 1673 * [Remove unnecessary parentheses on Kotlin types](/recipes/kotlin/cleanup/unnecessarytypeparentheses.md) - _In Kotlin, it's possible to add redundant nested parentheses in type definitions. This recipe is designed to remove those unnecessary parentheses._ * [Remove unnecessary trailing semicolon](/recipes/kotlin/cleanup/removetrailingsemicolon.md) - _Some Java programmers may mistakenly add semicolons at the end when writing Kotlin code, but in reality, they are not necessary._ * [Rename type alias](/recipes/kotlin/renametypealias.md) - _Change the name of a given type alias._ + ## rewrite-kubernetes * [Add RBAC rules](/recipes/kubernetes/rbac/addruletorole.md) - _Add RBAC rules to ClusterRoles or namespaced Roles._ @@ -1507,10 +1544,12 @@ Total standalone recipes: 1673 * [Service type](/recipes/kubernetes/services/findservicesbytype.md) - _Type of Kubernetes `Service` to find._ * [Update `Service` `externalIP`](/recipes/kubernetes/services/updateserviceexternalip.md) - _Swap out an IP address with another one in `Service` `externalIP` settings._ * [Update image name](/recipes/kubernetes/updatecontainerimagename.md) - _Search for image names that match patterns and replace the components of the name with new values._ + ## rewrite-liberty * [Replace `WSPrincipal.getCredential()` with `WSSubject` lookup](/recipes/java/liberty/replacewsprincipalgetcredential.md) - _Replaces `WSCredential credential = WSPrincipal.getCredential();` with a `null` initializer + `try/catch` lookup._ * [Replace beans.xml file](/recipes/xml/liberty/webbeansxmlrule.md) - _This Recipe replaces OpenWebBeans schema in every beans.xml with the standard CDI schema._ + ## rewrite-logging-frameworks * [Change SLF4J log level](/recipes/java/logging/slf4j/changeloglevel.md) - _Change the log level of SLF4J log statements._ @@ -1518,6 +1557,7 @@ Total standalone recipes: 1673 * [Log exceptions as parameters rather than as string concatenations](/recipes/java/logging/log4j/loggingexceptionconcatenationrecipe.md) - _By using the exception as another parameter you get the whole stack trace._ * [Prepend a random name to each Log4J statement](/recipes/java/logging/log4j/prependrandomname.md) - _To make finding the callsite of a logging statement easier in code search._ * [Use logger instead of system print statements](/recipes/java/logging/systemprinttologging.md) - _Replace `System.out` and `System.err` print statements with a logger._ + ## rewrite-maven * [Add Maven parent](/recipes/maven/addparentpom.md) - _Add a parent pom to a Maven pom.xml. Does nothing if a parent pom is already present._ @@ -1528,7 +1568,6 @@ Total standalone recipes: 1673 * [Change Maven Project Version](/recipes/maven/changeprojectversion.md) - _Change the project version of a Maven pom.xml. Identifies the project to be changed by its groupId and artifactId. If the version is defined as a property, this recipe will only change the property value if the property exists within the same pom._ * [Change Maven plugin configuration](/recipes/maven/changepluginconfiguration.md) - _Apply the specified configuration to a Maven plugin. Will not add the plugin if it does not already exist in the pom._ * [Change Maven plugin dependencies](/recipes/maven/changeplugindependencies.md) - _Applies the specified dependencies to a Maven plugin. Will not add the plugin if it does not already exist in the pom._ -* [Change Maven plugin executions](/recipes/maven/changepluginexecutions.md) - _Apply the specified executions to a Maven plugin. Will not add the plugin if it does not already exist in the pom._ * [Convert managed dependencies to runtime dependencies](/recipes/maven/managedtoruntimedependencies.md) - _This recipe processes Maven POMs, converting all `<dependencyManagement>` entries into runtime scoped `<dependencies>` entries. Import scoped BOMs (like jackson-bom) are left unmodified in `<dependencyManagement>`. Some style guidelines prefer that `<dependencyManagement>` be used only for BOMs. This maintain that style while avoiding introducing new symbols onto the compile classpath unintentionally._ * [Dependency management dependencies should have a version](/recipes/maven/cleanup/dependencymanagementdependencyrequiresversion.md) - _If they don't have a version, they can't possibly affect dependency resolution anywhere, and can be safely removed._ * [Does not include Maven dependency](/recipes/maven/search/doesnotincludedependency.md) - _A precondition which returns false if visiting a Maven pom which includes the specified dependency in the classpath of some scope. For compatibility with multimodule projects, this should most often be applied as a precondition._ @@ -1554,14 +1593,17 @@ Total standalone recipes: 1673 * [Remove unused properties](/recipes/maven/removeunusedproperties.md) - _Detect and remove Maven property declarations which do not have any usage within the project._ * [Update Maven wrapper](/recipes/maven/updatemavenwrapper.md) - _Update the version of Maven used in an existing Maven wrapper._ * [Upgrade transitive Maven dependencies](/recipes/maven/upgradetransitivedependencyversion.md) - _Upgrades the version of a transitive dependency in a Maven pom file. Leaves direct dependencies unmodified. Can be paired with the regular Upgrade Dependency Version recipe to upgrade a dependency everywhere, regardless of whether it is direct or transitive._ + ## rewrite-micrometer * [Convert Micrometer Timer to Observations](/recipes/micrometer/timertoobservation.md) - _Convert Micrometer Timer to Observations._ * [Find Dropwizard metrics](/recipes/micrometer/dropwizard/finddropwizardmetrics.md) - _Find uses of Dropwizard metrics that could be converted to a more modern metrics instrumentation library._ + ## rewrite-micronaut * [Find Micronaut properties config](/recipes/java/micronaut/findpropertiesconfig.md) - _Find Micronaut properties configuration files._ * [Find Micronaut yaml config](/recipes/java/micronaut/findyamlconfig.md) - _Find Micronaut yaml configuration files._ + ## rewrite-migrate-java * [A collection of `String` rules](/recipes/java/migrate/lang/stringrulesrecipes.md) - _A collection of rules for refactoring methods called on `String` instances in Java code._ @@ -1578,7 +1620,6 @@ Total standalone recipes: 1673 * [Force indentation to either tabs or spaces](/recipes/java/migrate/usetabsorspaces.md) - _This is useful for one-off migrations of a codebase that has mixed indentation styles, while preserving all other auto-detected formatting rules._ * [If-else-if-else to switch](/recipes/java/migrate/lang/ifelseifconstructtoswitch.md) - _Replace if-else-if-else with switch statements. In order to be replaced with a switch, all conditions must be on the same variable and there must be at least three cases._ * [Plan a Java version migration](/recipes/java/migrate/search/planjavamigration.md) - _Study the set of Java versions and associated tools in use across many repositories._ -* [Prefer `Map.of(..)`](/recipes/java/migrate/util/usemapof.md) - _Prefer `Map.of(..)` instead of using `java.util.Map#put(..)` in Java 10 or higher._ * [Project has no Jakarta annotations](/recipes/java/migrate/jakarta/hasnojakartaannotations.md) - _Mark all source as found per `JavaProject` where no Jakarta annotations are found. This is useful mostly as a precondition for recipes that require Jakarta annotations to be present_ * [Remove illegal semicolons](/recipes/java/migrate/removeillegalsemicolons.md) - _Remove semicolons after package declarations and imports, no longer accepted in Java 21 as of [JDK-8027682](https://bugs.openjdk.org/browse/JDK-8027682)._ * [Remove invocations of deprecated invocations from Deflater, Inflater, ZipFile](/recipes/java/migrate/util/removefinalizerfromzip.md) - _Remove invocations of finalize() deprecated invocations from Deflater, Inflater, ZipFile._ @@ -1591,11 +1632,13 @@ Total standalone recipes: 1673 * [Simplify Micrometer meter tags](/recipes/java/migrate/metrics/simplifymicrometermetertags.md) - _Use the simplest method to add new tags._ * [Update Maven Java project properties](/recipes/java/migrate/maven/updatemavenprojectpropertyjavaversion.md) - _The Java version is determined by several project properties, including: * `java.version` * `jdk.version` * `javaVersion` * `jdkVersion` * `maven.compiler.source` * `maven.compiler.target` * `maven.compiler.release` * `release.version` If none of these properties are in use and the maven compiler plugin is not otherwise configured, adds the `maven.compiler.release` property._ * [Use Maven compiler plugin release configuration](/recipes/java/migrate/maven/usemavencompilerpluginreleaseconfiguration.md) - _Replaces any explicit `source` or `target` configuration (if present) on the `maven-compiler-plugin` with `release`, and updates the `release` value if needed. Will not downgrade the Java version if the current version is higher._ + ## rewrite-nodejs * [Find Node.js projects](/recipes/nodejs/search/findnodeprojects.md) - _Find Node.js projects and summarize data about them._ * [Find and fix vulnerable npm dependencies](/recipes/nodejs/dependencyvulnerabilitycheck.md) - _This software composition analysis (SCA) tool detects and upgrades dependencies with publicly disclosed vulnerabilities. This recipe both generates a report of vulnerable dependencies and upgrades to newer versions with fixes. This recipe **only** upgrades to the latest **patch** version. If a minor or major upgrade is required to reach the fixed version, this recipe will not make any changes. Vulnerability information comes from the [GitHub Security Advisory Database](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._ * [Upgrade Node.js dependencies](/recipes/nodejs/upgradedependencyversion.md) - _Upgrade matching Node.js direct dependencies._ + ## rewrite-program-analysis * [Find PII exposure in logs and external APIs](/recipes/analysis/java/privacy/findpiiexposure.md) - _Detects when Personally Identifiable Information (PII) is exposed through logging statements or sent to external APIs without proper sanitization. This helps prevent data leaks and ensures compliance with privacy regulations like GDPR and CCPA._ @@ -1607,24 +1650,30 @@ Total standalone recipes: 1673 * [Find unreachable code](/recipes/analysis/java/controlflow/search/findunreachablecode.md) - _Uses control flow analysis to identify statements that can never be executed._ * [Find unused variable definitions](/recipes/analysis/java/controlflow/findunuseddefinitions.md) - _Identifies variable assignments whose values are never used before being overwritten._ * [Track data lineage](/recipes/analysis/java/datalineage/trackdatalineage.md) - _Tracks the flow of data from database sources (JDBC queries, JPA entities) to API sinks (REST endpoints, GraphQL mutations) to understand data dependencies and support compliance requirements._ + ## rewrite-properties * [Add comment before property key](/recipes/properties/addpropertycomment.md) - _Add a new comment before a property key if not already present, optionally commenting out the property._ * [Find property](/recipes/properties/search/findproperties.md) - _Finds occurrences of a property key._ + ## rewrite-quarkus * [Find Quarkus property](/recipes/quarkus/search/findquarkusproperties.md) - _Finds occurrences of a Quarkus property key._ * [Migrate SLF4J Logger injection and usage to Quarkus static `Log`](/recipes/quarkus/slf4jtoquarkuslogger.md) - _Removes usage of SLF4J Logger fields, adjusts imports, and replaces logger method calls with static Quarkus Log calls, including message formatting and method renaming for parameterized logging._ * [Search Quarkus profiles](/recipes/quarkus/search/findquarkusprofiles.md) - _Search the properties for existing Quarkus profiles._ + ## rewrite-react * [Find React component](/recipes/react/search/findreactcomponent.md) - _Locates usages of React components across the codebase including JSX elements and other references. If `componentName` is `null`, finds all React components._ * [Find React prop usage](/recipes/react/search/findpropusage.md) - _Locates usages of a specific prop of a React component._ + ## rewrite-rewrite * [Find OpenRewrite recipes](/recipes/java/recipes/findrecipes.md) - _This recipe finds all OpenRewrite recipes, primarily to produce a data table that is being used to experiment with fine-tuning a large language model to produce more recipes._ + ## rewrite-spring +* [Add `@SpringBootApplication` class](/recipes/java/spring/boot3/addspringbootapplication.md) - _Adds a `@SpringBootApplication` class containing a main method to bootify your Spring Framework application._ * [Add `SetUseTrailingSlashMatch()` in configuration](/recipes/java/spring/boot3/addsetusetrailingslashmatch.md) - _This is part of Spring MVC and WebFlux URL Matching Changes, as of Spring Framework 6.0, the trailing slash matching configuration option has been deprecated and its default value set to false. This means that previously, a controller `@GetMapping("/some/greeting")` would match both `GET /some/greeting` and `GET /some/greeting/`, but it doesn't match `GET /some/greeting/` anymore by default and will result in an HTTP 404 error. This recipe is change the default with the global Spring MVC or Webflux configuration._ * [Add `io.spring.dependency-management` plugin, if in use](/recipes/gradle/spring/addspringdependencymanagementplugin.md) - _Prior to Spring Boot 2.0 the dependency management plugin was applied automatically as part of the overall spring boot plugin. Afterwards the dependency-management plugin must be applied explicitly, or Gradle's `platform()` feature may be used instead. This recipe makes usage of io-spring.dependency-management explicit in anticipation of upgrade to Spring Boot 2.0 or later._ * [Add missing `@Configuration` annotation](/recipes/java/spring/boot2/addconfigurationannotationifbeanspresent.md) - _Class having `@Bean` annotation over any methods but missing `@Configuration` annotation over the declaring class would have `@Configuration` annotation added._ @@ -1649,10 +1698,12 @@ Total standalone recipes: 1673 * [Upgrade Spring dependencies](/recipes/maven/spring/upgradeexplicitspringbootdependencies.md) - _Upgrades dependencies according to the specified version of spring boot. Spring boot has many direct and transitive dependencies. When a module has an explicit dependency on one of these it may also need to be upgraded to match the version used by spring boot._ * [Use TLS for AMQP connection strings](/recipes/java/spring/amqp/usetlsamqpconnectionstring.md) - _Use TLS for AMQP connection strings._ * [Use TLS for JDBC connection strings](/recipes/java/spring/data/usetlsjdbcconnectionstring.md) - _Increasingly, for compliance reasons (e.g. [NACHA](https://www.nacha.org/sites/default/files/2022-06/End_User_Briefing_Supplementing_Data_Security_UPDATED_FINAL.pdf)), JDBC connection strings should be TLS-enabled. This recipe will update the port and optionally add a connection attribute to indicate that the connection is TLS-enabled._ + ## rewrite-sql * [Find SQL function](/recipes/sql/search/findfunction.md) - _Find SQL functions by name._ * [Find SQL in code and resource files](/recipes/sql/findsql.md) - _Find SQL in code (e.g. in string literals) and in resources like those ending with `.sql`._ + ## rewrite-static-analysis * [Add `serialVersionUID` to a `Serializable` class when missing](/recipes/staticanalysis/addserialversionuidtoserializable.md) - _A `serialVersionUID` field is strongly recommended in all `Serializable` classes. If this is not defined on a `Serializable` class, the compiler will generate this value. If a change is later made to the class, the generated value will change and attempts to deserialize the class will fail._ @@ -1714,21 +1765,25 @@ Total standalone recipes: 1673 * [Use lambda expressions instead of anonymous classes](/recipes/staticanalysis/uselambdaforfunctionalinterface.md) - _Instead of anonymous class declarations, use a lambda where possible. Using lambdas to replace anonymous classes can lead to more expressive and maintainable code, improve code readability, reduce code duplication, and achieve better performance in some cases._ * [Week Year (YYYY) should not be used for date formatting](/recipes/staticanalysis/replaceweekyearwithyear.md) - _For most dates Week Year (YYYY) and Year (yyyy) yield the same results. However, on the last week of December and the first week of January, Week Year could produce unexpected results._ * [`hashCode()` should not be called on array instances](/recipes/staticanalysis/removehashcodecallsfromarrayinstances.md) - _Replace `hashCode()` calls on arrays with `Arrays.hashCode()` because the results from `hashCode()` are not helpful._ + ## rewrite-struts * [Find Struts actions](/recipes/java/struts/search/findstrutsactions.md) - _Find actions and their associated definitions._ * [Find struts XML files](/recipes/java/struts/search/findstrutsxml.md) - _Struts XML files may have any name, and may be outside a resources directory, so the true test is to look at the content of the file._ + ## rewrite-terraform * [Find Terraform resource](/recipes/terraform/search/findresource.md) - _Find a Terraform resource by resource type._ * [Find required providers](/recipes/terraform/search/findrequiredprovider.md) - _Find `required_providers` blocks in Terraform configuration files. Produces a data table of the provider names and their versions._ * [Use a long enough byte length for `random` resources](/recipes/terraform/securerandom.md) - _Use a long enough byte length for `random` resources._ + ## rewrite-testing-frameworks * [Close unclosed static mocks](/recipes/java/testing/mockito/closeunclosedstaticmocks.md) - _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._ * [JUnit 4 MockitoJUnitRunner.Silent to JUnit Jupiter MockitoExtension with LENIENT settings](/recipes/java/testing/mockito/mockitojunitrunnersilenttoextension.md) - _Replace `@RunWith(MockitoJUnitRunner.Silent.class)` with `@ExtendWith(MockitoExtension.class)` and `@MockitoSettings(strictness = Strictness.LENIENT)`._ * [Remove empty tests without comments](/recipes/java/testing/cleanup/removeemptytests.md) - _Removes empty methods with a `@Test` annotation if the body does not have comments._ * [Replace Mockito 1.x `anyString()` with `nullable(String.class)`](/recipes/java/testing/mockito/anystringtonullable.md) - _Since Mockito 2.10 `anyString()` no longer matches null values. Use `nullable(Class)` instead._ + ## rewrite-third-party * [Add WebLogic 15.1.1 PetClinic extras](/recipes/com/oracle/weblogic/rewrite/examples/spring/migratedpetclinicextrasfor1511.md) - _Run migration extras for migrated Spring Framework PetClinic example run on WebLogic 15.1.1._ @@ -1747,6 +1802,9 @@ Total standalone recipes: 1673 * [Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2](/recipes/com/oracle/weblogic/rewrite/examples/spring/setupspringframeworkpetclinicfor1412.md) - _Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2._ * [Update Jakarta Persistence to 3.1](/recipes/com/oracle/weblogic/rewrite/jakarta/updatejakartapersistenceto31.md) - _Update Jakarta Persistence to 3.1._ * [Update Jakarta Persistence to 3.2](/recipes/com/oracle/weblogic/rewrite/jakarta/updatejakartapersistenceto32.md) - _Update Jakarta Persistence to 3.2._ +* [`Jackson2Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson2rulesrecipes.md) - _Refaster rules related to Jackson 2.x expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/Jackson2Rules)._ +* [`Jackson3Rules` Refaster recipes](/recipes/tech/picnic/errorprone/refasterrules/jackson3rulesrecipes.md) - _Refaster rules related to Jackson 3.x expressions and statements. [Source](https://error-prone.picnic.tech/refasterrules/Jackson3Rules)._ + ## rewrite-toml * [Change TOML key](/recipes/toml/changekey.md) - _Change a TOML key, while leaving the value intact._ @@ -1759,9 +1817,11 @@ Total standalone recipes: 1673 * [Find TOML keys](/recipes/toml/findkey.md) - _Find TOML keys matching a path expression._ * [Merge TOML table row](/recipes/toml/mergetablerow.md) - _Merge a TOML row into an array table. If a row with the same identifying property exists, merge the values. Otherwise, insert a new row._ * [Replace TOML table row](/recipes/toml/replacetablerow.md) - _Replace a TOML table row with new content. If a row with the same identifying property exists, replace it entirely._ + ## rewrite-vulncheck * [Use VulnCheck Exploit Intelligence to fix vulnerabilities](/recipes/vulncheck/fixvulncheckvulnerabilities.md) - _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 VulnCheck Vulnerability Intelligence. The recipe has an option to limit fixes to only those vulnerabilities that have evidence of exploitation at various levels of severity._ + ## rewrite-xml * [Add a comment to an XML tag](/recipes/xml/addcommenttoxmltag.md) - _Adds a comment as the first element in an XML tag._ @@ -1784,6 +1844,7 @@ Total standalone recipes: 1673 * [Update OWASP suppression date bounds](/recipes/xml/security/updateowaspsuppressiondate.md) - _Updates the expiration date for OWASP suppressions having a matching cve tag. For use with the OWASP `dependency-check` tool. More details: https://jeremylong.github.io/DependencyCheck/general/suppression.html._ * [XML style Auto-detection debug](/recipes/xml/style/autodetectdebug.md) - _Runs XML Autodetect and records the results in data tables and search markers. A debugging tool for figuring out why XML documents get styled the way they do._ * [XSLT transformation](/recipes/xml/xslttransformation.md) - _Apply the specified XSLT transformation on matching files. Note that there are no format matching guarantees when running this recipe._ + ## rewrite-yaml * [Append to sequence](/recipes/yaml/appendtosequence.md) - _Append item to YAML sequence._ diff --git a/sidebars.ts b/sidebars.ts index 9384f4f520..2fc0829667 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -186,6 +186,7 @@ const sidebars: SidebarsConfig = { keywords: ['changelog'], }, items: [ + 'changelog/8-68-1-Release', 'changelog/8-67-0-Release', 'changelog/8-66-1-Release', 'changelog/8-64-0-Release', diff --git a/src/plugins/latest-versions.js b/src/plugins/latest-versions.js index b2d22d6423..a71bb40cd1 100644 --- a/src/plugins/latest-versions.js +++ b/src/plugins/latest-versions.js @@ -1,82 +1,82 @@ const latestVersions = { - "{{VERSION_REWRITE_RECIPE_BOM}}": "3.19.0", - "{{VERSION_REWRITE_GRADLE_PLUGIN}}": "7.21.0", - "{{VERSION_REWRITE_MAVEN_PLUGIN}}": "6.24.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ANGULAR}}": "0.1.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_CRYPTOGRAPHY}}": "0.11.2", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_DEVCENTER}}": "1.12.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ELASTIC}}": "0.4.1", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}}": "0.15.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_JASPERREPORTS}}": "0.1.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_KAFKA}}": "0.4.1", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_PROGRAM_ANALYSIS}}": "0.6.1", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_REACT}}": "0.1.0", - "{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}}": "0.17.0", + "{{VERSION_REWRITE_RECIPE_BOM}}": "3.20.0", + "{{VERSION_REWRITE_GRADLE_PLUGIN}}": "7.22.0", + "{{VERSION_REWRITE_MAVEN_PLUGIN}}": "6.25.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ANGULAR}}": "0.1.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_CRYPTOGRAPHY}}": "0.11.3", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_DEVCENTER}}": "1.13.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_ELASTIC}}": "0.4.2", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_HIBERNATE}}": "0.15.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_JASPERREPORTS}}": "0.2.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_KAFKA}}": "0.4.2", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_PROGRAM_ANALYSIS}}": "0.7.0", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_REACT}}": "0.1.1", + "{{VERSION_IO_MODERNE_RECIPE_REWRITE_SPRING}}": "0.18.0", "{{VERSION_IO_MODERNE_RECIPE_REWRITE_VULNCHECK}}": "0.5.0", "{{VERSION_ORG_OPENREWRITE_REWRITE_COBOL}}": "2.13.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_CORE}}": "8.67.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_CORE}}": "8.68.1", "{{VERSION_ORG_OPENREWRITE_REWRITE_CSHARP}}": "0.27.27", - "{{VERSION_ORG_OPENREWRITE_REWRITE_GRADLE}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_GROOVY}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_HCL}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVASCRIPT}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_JSON}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_KOTLIN}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_MAVEN}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_POLYGLOT}}": "2.8.1", - "{{VERSION_ORG_OPENREWRITE_REWRITE_PROPERTIES}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_PROTOBUF}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_PYTHON}}": "1.44.1", - "{{VERSION_ORG_OPENREWRITE_REWRITE_TEMPLATING}}": "1.38.1", - "{{VERSION_ORG_OPENREWRITE_REWRITE_TOML}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_XML}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_REWRITE_YAML}}": "8.67.0", - "{{VERSION_ORG_OPENREWRITE_META_REWRITE_ANALYSIS}}": "2.29.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_AI_SEARCH}}": "0.32.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ALL}}": "1.23.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ANDROID}}": "0.15.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_APACHE}}": "2.20.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_AZUL}}": "0.8.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CIRCLECI}}": "3.9.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS}}": "0.22.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS_NG}}": "0.15.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPILED_ANALYSIS}}": "0.11.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPREHENSION}}": "0.10.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CONCOURSE}}": "3.9.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CUCUMBER_JVM}}": "2.11.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOCKER}}": "2.14.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOTNET}}": "0.14.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DROPWIZARD}}": "0.8.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_FEATURE_FLAGS}}": "1.16.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}}": "3.15.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITLAB}}": "0.17.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}": "2.15.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JACKSON}}": "1.11.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_DEPENDENCIES}}": "1.46.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_SECURITY}}": "3.22.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JENKINS}}": "0.33.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JODA}}": "0.4.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_KUBERNETES}}": "3.13.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LIBERTY}}": "1.23.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LOGGING_FRAMEWORKS}}": "3.19.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICROMETER}}": "0.27.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICRONAUT}}": "2.30.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}}": "3.22.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NETTY}}": "0.6.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NODEJS}}": "0.34.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OKHTTP}}": "0.20.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OPENAPI}}": "0.27.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_QUARKUS}}": "2.28.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REACTIVE_STREAMS}}": "0.18.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REWRITE}}": "0.16.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}": "6.19.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING_TO_QUARKUS}}": "0.3.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SQL}}": "2.8.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STATIC_ANALYSIS}}": "2.22.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STRUTS}}": "0.23.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TERRAFORM}}": "3.11.1", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}": "3.22.0", - "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}": "0.31.2", + "{{VERSION_ORG_OPENREWRITE_REWRITE_GRADLE}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_GROOVY}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_HCL}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVA}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_JAVASCRIPT}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_JSON}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_KOTLIN}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_MAVEN}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_POLYGLOT}}": "2.9.0", + "{{VERSION_ORG_OPENREWRITE_REWRITE_PROPERTIES}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_PROTOBUF}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_PYTHON}}": "1.44.2", + "{{VERSION_ORG_OPENREWRITE_REWRITE_TEMPLATING}}": "1.38.2", + "{{VERSION_ORG_OPENREWRITE_REWRITE_TOML}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_XML}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_REWRITE_YAML}}": "8.68.1", + "{{VERSION_ORG_OPENREWRITE_META_REWRITE_ANALYSIS}}": "2.30.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_AI_SEARCH}}": "0.32.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ALL}}": "1.23.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_ANDROID}}": "0.15.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_APACHE}}": "2.20.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_AZUL}}": "0.8.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CIRCLECI}}": "3.9.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS}}": "0.23.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CODEMODS_NG}}": "0.16.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPILED_ANALYSIS}}": "0.11.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_COMPREHENSION}}": "0.10.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CONCOURSE}}": "3.9.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_CUCUMBER_JVM}}": "2.11.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOCKER}}": "2.14.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DOTNET}}": "0.14.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_DROPWIZARD}}": "0.8.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_FEATURE_FLAGS}}": "1.16.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITHUB_ACTIONS}}": "3.16.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_GITLAB}}": "0.17.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_HIBERNATE}}": "2.16.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JACKSON}}": "1.12.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_DEPENDENCIES}}": "1.47.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JAVA_SECURITY}}": "3.23.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JENKINS}}": "0.33.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_JODA}}": "0.5.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_KUBERNETES}}": "3.14.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LIBERTY}}": "1.23.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_LOGGING_FRAMEWORKS}}": "3.19.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICROMETER}}": "0.27.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MICRONAUT}}": "2.30.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_MIGRATE_JAVA}}": "3.23.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NETTY}}": "0.6.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_NODEJS}}": "0.35.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OKHTTP}}": "0.20.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_OPENAPI}}": "0.27.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_QUARKUS}}": "2.28.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REACTIVE_STREAMS}}": "0.18.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_REWRITE}}": "0.16.1", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING}}": "6.20.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SPRING_TO_QUARKUS}}": "0.4.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_SQL}}": "2.8.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STATIC_ANALYSIS}}": "2.23.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_STRUTS}}": "0.23.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TERRAFORM}}": "3.11.2", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_TESTING_FRAMEWORKS}}": "3.23.0", + "{{VERSION_ORG_OPENREWRITE_RECIPE_REWRITE_THIRD_PARTY}}": "0.32.0", }; export default latestVersions;