Recipes by Tag
This doc contains all recipe tags and the recipes that are tagged with them.
Total tags: 238
5to6
7 recipes
- Convert 
vartolet- Convertvartolet - Generate named exports from CommonJS modules - Generate named exports from CommonJS modules
 - Remove "use strict" directives - Remove "use strict" directives
 - Replace all function expressions with only 
returnstatement with simple arrow - Replace all function expressions with onlyreturnstatement with simple arrow function. - Transform AMD style 
define()calls to ES6importstatements - Transform AMD styledefine()calls to ES6importstatements - Transform CommonJS style 
require()calls to ES6importstatements - Transform CommonJS stylerequire()calls to ES6importstatements - Upgrade ECMAScript 5 to ECMAScript 6 - A collection of common ECMAScript 5 to ECMAScript 6 updates.
 
actions
1 recipe
- Migrate from tibdex/github-app-token to actions/create-github-app-token - Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case.
 
activation
2 recipes
- Migrate deprecated 
javax.activationpackages tojakarta.activation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.activationpackages tojakarta.activation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. 
activemq
1 recipe
- Replace Spring Boot ActiveMQ with Quarkus Artemis JMS - Migrates 
spring-boot-starter-activemqtoquarkus-artemis-jms. 
actuator
1 recipe
- Replace Spring Boot Actuator with Quarkus SmallRye Health - Migrates 
spring-boot-starter-actuatortoquarkus-smallrye-health. 
ai
1 recipe
- Fix mis-encoded French comments, javadocs and pom.xml comments - Fixes mis-encoded French comments in your code, javadocs and in your pom.xml files. Mis-encoded comments contain a ? or � character.
 
amqp
2 recipes
- Replace Spring Boot AMQP with Quarkus Messaging AMQP - Migrates 
spring-boot-starter-amqptoquarkus-messaging-amqpwhen reactor dependencies are present. - Replace Spring Boot AMQP with Quarkus Messaging RabbitMQ - Migrates 
spring-boot-starter-amqptoquarkus-messaging-rabbitmqwhen no reactor dependencies are present. 
annotation
3 recipes
- Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotationtojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotationtojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. 
annotations
2 recipes
- Migrate 
@EnableXyzannotations to Quarkus extensions - Removes Spring@EnableXyzannotations and adds the corresponding Quarkus extensions as dependencies. - Migrate com.intellij:annotations to org.jetbrains:annotations - This recipe will upgrade old dependency of com.intellij:annotations to the newer org.jetbrains:annotations.
 
apache
17 recipes
- Migrate 
WordUtilsto Apache Commons Text - Migrateorg.apache.commons.lang.WordUtilstoorg.apache.commons.text.WordUtilsand add the Commons Text dependency. - Migrate from httpcore-nio to ApacheHttpClient 5.x core dependency - Adopt 
org.apache.httpcomponents.core5:httpcore5fromorg.apache.httpcomponents:httpcore-nio. - Migrate from org.apache.httpcomponents to ApacheHttpClient 5.x dependencies - Adopt 
org.apache.httpcomponents.client5:httpclient5fromorg.apache.httpcomponents. - Migrate to ApacheHttpClient 5.x - Migrate applications to the latest Apache HttpClient 5.x 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.
 - Migrates to Apache Commons Collections 4.x - Migrate applications to the latest Apache Commons Collections 4.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 - Migrates to Apache Commons Lang 3.x - Migrate applications to the latest Apache Commons Lang 3.x release. This recipe modifies application's build files, and changes the package as per the migration release notes.
 - Migrates to Apache Commons Math 3.x - Migrate applications to the latest Apache Commons Math 3.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 - Migrates to Apache POI 3.17 - Migrates to the last Apache POI 3.x release. This recipe modifies build files and makes changes to deprecated/preferred APIs that have changed between versions.
 - Migrates to ApacheHttpClient 4.5.x - Migrate applications to the latest Apache HttpClient 4.5.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 - Prefer 
System.lineSeparator()- Prefer the Java standard library'sSystem.lineSeparator()over third-party usage of apache'sIOUtils.LINE_SEPARATOR. - Prefer 
java.nio.charset.StandardCharsets- Prefer the Java standard library'sjava.nio.charset.StandardCharsetsover third-party usage of apache'sorg.apache.commons.io.Charsets. - Prefer 
java.nio.charset.StandardCharsets- Prefer the Java standard library'sjava.nio.charset.StandardCharsetsoverorg.apache.commons.lang3.CharEncoding. - Prefer 
java.nio.file.Files- Prefer the Java standard library'sjava.nio.file.Filesover third-party usage of apache'sapache.commons.io.FileUtils. - Prefer 
java.util.Base64- Prefer the Java standard library'sjava.util.Base64over third-party usage of apache'sapache.commons.codec.binary.Base64. - Relocate 
org.apache.commons:commons-iotocommons-io:commons-io- The deployment oforg.apache.commons:commons-iowas a publishing mistake around 2012 which was corrected by changing the deployment GAV to be located undercommons-io:commons-io. - Replace any StringUtils#isEmpty(String) and #isNotEmpty(String) - Replace any 
StringUtils#isEmpty(String)and#isNotEmpty(String)withs == null || s.isEmpty()ands != null && !s.isEmpty(). - Use IOUtils method that include  their charset encoding - Use 
IOUtilsmethod invocations that include the charset encoding instead of using the deprecated versions that do not include a charset encoding. (e.g. convertsIOUtils.readLines(inputStream)toIOUtils.readLines(inputStream, StandardCharsets.UTF_8). 
application
7 recipes
- Migrate 
@EnableXyzannotations to Quarkus extensions - Removes Spring@EnableXyzannotations and adds the corresponding Quarkus extensions as dependencies. - Migrate xmlns entries in 
application-client.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application Client schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
application-client.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inapplication-client.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
application-client.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
application.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
weblogic-application.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-application.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-application.xmlfiles to WebLogic 15.1.1 
arquillian
1 recipe
- Use Arquillian JUnit 5 Extension - Migrates Arquillian JUnit 4 to JUnit 5.
 
artemis
1 recipe
- Replace Spring Boot Artemis with Quarkus Artemis JMS - Migrates 
spring-boot-starter-artemistoquarkus-artemis-jms. 
assertj
11 recipes
- AssertJ best practices - Migrates JUnit asserts to AssertJ and applies best practices to assertions.
 - Migrate Fest 2.x to AssertJ - AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability. Converts Fest 2.x imports to AssertJ imports.
 - Migrate Google Truth to AssertJ - Migrate Google Truth assertions to AssertJ assertions.
 - Migrate Hamcrest assertions to AssertJ - Migrate Hamcrest 
assertThat(..)to AssertJAssertions. - Migrate Hamcrest assertions to JUnit Jupiter - Migrate Hamcrest 
assertThat(..)to JUnit JupiterAssertions. - Migrate JUnit asserts to AssertJ - AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability. Converts assertions from 
org.junit.jupiter.api.Assertionstoorg.assertj.core.api.Assertions. Will convert JUnit 4 to JUnit Jupiter if necessary to match and modify assertions. - Migrate TestNG assertions to AssertJ - Convert assertions from 
org.testng.Asserttoorg.assertj.core.api.Assertions. - Shorten AssertJ assertions - Replace AssertJ assertions where a dedicated assertion is available for the same actual value.
 - Simplify AssertJ chained assertions - Replace AssertJ assertions where a method is called on the actual value with a dedicated assertion.
 - Statically import AssertJ's 
assertThat- Consistently use a static import rather than inlining theAssertionsclass name in tests. - Use consistent Hamcrest matcher imports - Use consistent imports for Hamcrest matchers, and remove wrapping 
is(Matcher)calls ahead of further changes. 
authentication
2 recipes
- Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. 
authorization
2 recipes
- Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. 
AWS
53 recipes
- Add AWS SDK for Java v2 S3 Event Notification dependency if needed - This recipe will add the Java v2 S3 Event Notification dependency if v1 S3EventNotification is used
 - Add AWS SDK for Java v2 S3 Transfer Manager dependency if needed - This recipe will add the Java v2 S3 Transfer Manager dependency if v1 Transfer Manager is used
 - Best practices for AWS - Securely operate on Amazon Web Services.
 - Disable Instance Metadata Service version 1 - As a request/response method IMDSv1 is prone to local misconfigurations.
 - Enable API gateway caching - Enable caching for all methods of API Gateway.
 - Enable point-in-time recovery for DynamoDB - DynamoDB Point-In-Time Recovery (PITR) is an automatic backup service for DynamoDB table data that helps protect your DynamoDB tables from accidental write or delete operations.
 - Encrypt Aurora clusters - Native Aurora encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
 - Encrypt CodeBuild projects - Build artifacts, such as a cache, logs, exported raw test report data files, and build results, are encrypted by default using CMKs for Amazon S3 that are managed by the AWS Key Management Service.
 - Encrypt DAX storage at rest - DAX encryption at rest automatically integrates with AWS KMS for managing the single service default key used to encrypt clusters.
 - Encrypt DocumentDB storage - The encryption feature available for Amazon DocumentDB clusters provides an additional layer of data protection by helping secure your data against unauthorized access to the underlying storage.
 - Encrypt EBS snapshots - EBS snapshots should be encrypted, as they often include sensitive information, customer PII or CPNI.
 - Encrypt EBS volume launch configurations - EBS volumes allow you to create encrypted launch configurations when creating EC2 instances and auto scaling. When the entire EBS volume is encrypted, data stored at rest on the volume, disk I/O, snapshots created from the volume, and data in-transit between EBS and EC2 are all encrypted.
 - Encrypt EBS volumes - Encrypting EBS volumes ensures that replicated copies of your images are secure even if they are accidentally exposed. AWS EBS encryption uses AWS KMS customer master keys (CMK) when creating encrypted volumes and snapshots. Storing EBS volumes in their encrypted state reduces the risk of data exposure or data loss.
 - Encrypt EFS Volumes in ECS Task Definitions in transit - Enable attached EFS definitions in ECS tasks to use encryption in transit.
 - Encrypt ElastiCache Redis at rest - ElastiCache for Redis offers default encryption at rest as a service.
 - Encrypt ElastiCache Redis in transit - ElastiCache for Redis offers optional encryption in transit. In-transit encryption provides an additional layer of data protection when transferring data over standard HTTPS protocol.
 - Encrypt Neptune storage - Encryption of Neptune storage protects data and metadata against unauthorized access.
 - Encrypt RDS clusters - Native RDS encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
 - Encrypt Redshift storage at rest - Redshift clusters should be securely encrypted at rest.
 - Ensure AWS CMK rotation is enabled - Ensure AWS CMK rotation is enabled.
 - Ensure AWS EFS with encryption for data at rest is enabled - Ensure AWS EFS with encryption for data at rest is enabled.
 - Ensure AWS EKS cluster endpoint access is publicly disabled - Ensure AWS EKS cluster endpoint access is publicly disabled.
 - Ensure AWS Elasticsearch domain encryption for data at rest is enabled - Ensure AWS Elasticsearch domain encryption for data at rest is enabled.
 - Ensure AWS Elasticsearch domains have 
EnforceHTTPSenabled - Ensure AWS Elasticsearch domains haveEnforceHTTPSenabled. - Ensure AWS Elasticsearch has node-to-node encryption enabled - Ensure AWS Elasticsearch has node-to-node encryption enabled.
 - Ensure AWS IAM password policy has a minimum of 14 characters - Ensure AWS IAM password policy has a minimum of 14 characters.
 - Ensure AWS Lambda function is configured for function-level concurrent execution limit - Ensure AWS Lambda function is configured for function-level concurrent execution limit.
 - Ensure AWS Lambda functions have tracing enabled - Ensure AWS Lambda functions have tracing enabled.
 - Ensure AWS RDS database instance is not publicly accessible - Ensure AWS RDS database instance is not publicly accessible.
 - Ensure AWS S3 object versioning is enabled - Ensure AWS S3 object versioning is enabled.
 - Ensure Amazon EKS control plane logging enabled for all log types - Ensure Amazon EKS control plane logging enabled for all log types.
 - Ensure CloudTrail log file validation is enabled - Ensure CloudTrail log file validation is enabled.
 - Ensure EC2 is EBS optimized - Ensure EC2 is EBS optimized.
 - Ensure ECR repositories are encrypted - Ensure ECR repositories are encrypted.
 - Ensure IAM password policy expires passwords within 90 days or less - Ensure IAM password policy expires passwords within 90 days or less.
 - Ensure IAM password policy prevents password reuse - Ensure IAM password policy prevents password reuse.
 - Ensure IAM password policy requires at least one lowercase letter - Ensure IAM password policy requires at least one lowercase letter.
 - Ensure IAM password policy requires at least one number - Ensure IAM password policy requires at least one number.
 - Ensure IAM password policy requires at least one symbol - Ensure IAM password policy requires at least one symbol.
 - Ensure IAM password policy requires at least one uppercase letter - Ensure IAM password policy requires at least one uppercase letter.
 - Ensure Kinesis Stream is securely encrypted - Ensure Kinesis Stream is securely encrypted.
 - Ensure RDS database has IAM authentication enabled - Ensure RDS database has IAM authentication enabled.
 - Ensure RDS instances have Multi-AZ enabled - Ensure RDS instances have Multi-AZ enabled.
 - Ensure VPC subnets do not assign public IP by default - Ensure VPC subnets do not assign public IP by default.
 - Ensure data stored in an S3 bucket is securely encrypted at rest - Ensure data stored in an S3 bucket is securely encrypted at rest.
 - Ensure detailed monitoring for EC2 instances is enabled - Ensure detailed monitoring for EC2 instances is enabled.
 - Ensure enhanced monitoring for Amazon RDS instances is enabled - Ensure enhanced monitoring for Amazon RDS instances is enabled.
 - Ensure respective logs of Amazon RDS are enabled - Ensure respective logs of Amazon RDS are enabled.
 - Ensure the S3 bucket has access logging enabled - Ensure the S3 bucket has access logging enabled.
 - Make ECR tags immutable - Amazon ECR supports immutable tags, preventing image tags from being overwritten. In the past, ECR tags could have been overwritten, this could be overcome by requiring users to uniquely identify an image using a naming convention.
 - Migrate from the AWS SDK for Java v1 to the AWS SDK for Java v2 - This recipe will apply changes required for migrating from the AWS SDK for Java v1 to the AWS SDK for Java v2.
 - Scan images pushed to ECR - ECR Image Scanning assesses and identifies operating system vulnerabilities. Using automated image scans you can ensure container image vulnerabilities are found before getting pushed to production.
 - Use HTTPS for Cloudfront distribution - Secure communication by default.
 
Azure
49 recipes
- Best practices for Azure - Securely operate on Microsoft Azure.
 - Disable Kubernetes dashboard - Disabling the dashboard eliminates it as an attack vector. The dashboard add-on is disabled by default for all new clusters created on Kubernetes 1.18 or greater.
 - Enable Azure Storage Account Trusted Microsoft Services access - Certain Microsoft services that interact with storage accounts operate from networks that cannot be granted access through network rules. Using this configuration, you can allow the set of trusted Microsoft services to bypass those network rules.
 - Enable Azure Storage secure transfer required - Microsoft recommends requiring secure transfer for all storage accounts.
 - Enable geo-redundant backups on PostgreSQL server - Ensure PostgreSQL server enables geo-redundant backups.
 - Encrypt Azure VM data disk with ADE/CMK - Ensure Azure VM data disk is encrypted with ADE/CMK.
 - Ensure AKS policies add-on - Azure Policy Add-on for Kubernetes service (AKS) extends Gatekeeper v3, an admission controller webhook for Open Policy Agent (OPA), to apply at-scale enforcements and safeguards on your clusters in a centralized, consistent manner.
 - Ensure AKV secrets have an expiration date set - Ensure AKV secrets have an expiration date set.
 - Ensure Azure App Service Web app redirects HTTP to HTTPS - Ensure Azure App Service Web app redirects HTTP to HTTPS.
 - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days.
 - Ensure Azure PostgreSQL database server with SSL connection is enabled - Ensure Azure PostgreSQL database server with SSL connection is enabled.
 - Ensure Azure SQL Server threat detection alerts are enabled for all threat types - Ensure Azure SQL Server threat detection alerts are enabled for all threat types.
 - Ensure Azure SQL server audit log retention is greater than 90 days - Ensure Azure SQL server audit log retention is greater than 90 days.
 - Ensure Azure SQL server send alerts to field value is set - Ensure Azure SQL server send alerts to field value is set.
 - Ensure Azure application gateway has WAF enabled - Ensure Azure application gateway has WAF enabled.
 - Ensure Azure key vault is recoverable - Ensure Azure key vault is recoverable.
 - Ensure FTP Deployments are disabled - Ensure FTP Deployments are disabled.
 - Ensure MSSQL servers have email service and co-administrators enabled - Ensure MSSQL servers have email service and co-administrators enabled.
 - Ensure MySQL is using the latest version of TLS encryption - Ensure MySQL is using the latest version of TLS encryption.
 - Ensure MySQL server databases have Enforce SSL connection enabled - Ensure MySQL server databases have Enforce SSL connection enabled.
 - Ensure MySQL server disables public network access - Ensure MySQL server disables public network access.
 - Ensure MySQL server enables Threat Detection policy - Ensure MySQL server enables Threat Detection policy.
 - Ensure MySQL server enables geo-redundant backups - Ensure MySQL server enables geo-redundant backups.
 - Ensure PostgreSQL server disables public network access - Ensure PostgreSQL server disables public network access.
 - Ensure PostgreSQL server enables Threat Detection policy - Ensure PostgreSQL server enables Threat Detection policy.
 - Ensure PostgreSQL server enables infrastructure encryption - Ensure PostgreSQL server enables infrastructure encryption.
 - Ensure Send email notification for high severity alerts is enabled - Ensure Send email notification for high severity alerts is enabled.
 - Ensure Send email notification for high severity alerts to admins is enabled - Ensure Send email notification for high severity alerts to admins is enabled.
 - Ensure Web App has incoming client certificates enabled - Ensure Web App has incoming client certificates enabled.
 - Ensure Web App uses the latest version of HTTP - Ensure Web App uses the latest version of HTTP.
 - Ensure Web App uses the latest version of TLS encryption - Ensure Web App uses the latest version of TLS encryption.
 - Ensure a security contact phone number is present - Ensure a security contact phone number is present.
 - Ensure activity log retention is set to 365 days or greater - Ensure activity log retention is set to 365 days or greater.
 - Ensure all keys have an expiration date - Ensure all keys have an expiration date.
 - Ensure app service enables HTTP logging - Ensure app service enables HTTP logging.
 - Ensure app service enables detailed error messages - Ensure app service enables detailed error messages.
 - Ensure app service enables failed request tracing - Ensure app service enables failed request tracing.
 - Ensure app services use Azure files - Ensure app services use Azure files.
 - Ensure key vault allows firewall rules settings - Ensure key vault allows firewall rules settings.
 - Ensure key vault enables purge protection - Ensure key vault enables purge protection.
 - Ensure key vault key is backed by HSM - Ensure key vault key is backed by HSM.
 - Ensure key vault secrets have 
content_typeset - Ensure key vault secrets havecontent_typeset. - Ensure log profile is configured to capture all activities - Ensure log profile is configured to capture all activities.
 - Ensure managed identity provider is enabled for app services - Ensure managed identity provider is enabled for app services.
 - Ensure public network access enabled is set to False for mySQL servers - Ensure public network access enabled is set to False for mySQL servers.
 - Ensure standard pricing tier is selected - Ensure standard pricing tier is selected.
 - Ensure storage account uses latest TLS version - Communication between an Azure Storage account and a client application is encrypted using Transport Layer Security (TLS). Microsoft recommends using the latest version of TLS for all your Microsoft Azure App Service web applications.
 - Ensure the storage container storing activity logs is not publicly accessible - Ensure the storage container storing activity logs is not publicly accessible.
 - Set Azure Storage Account default network access to deny - Ensure Azure Storage Account default network access is set to Deny.
 
batch
8 recipes
- Migrate deprecated 
javax.annotation.securitypackages tojakarta.annotation.security- Change type of classes in thejavax.annotation.securitypackage to jakarta. - Migrate deprecated 
javax.annotation.sqlpackages tojakarta.annotation.sql- Change type of classes in thejavax.annotation.sqlpackage to jakarta. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. Excludesjavax.annotation.processing. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Change type of classes in thejavax.annotationpackage to jakarta. - Migrate deprecated 
javax.batchpackages tojakarta.batch- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.batchpackages tojakarta.batch- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate to Spring Batch 5.0 from 4.3 - Migrate applications built on Spring Batch 4.3 to the latest Spring Batch 5.0 release.
 - Replace Spring Boot Batch with Quarkus Scheduler - Migrates 
spring-boot-starter-batchtoquarkus-scheduler. 
batchXML
1 recipe
- Migrate xmlns entries in 
batch.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
bean validation
1 recipe
- Migrate xmlns entries and javax. packages in 
validation.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
beans
2 recipes
- Migrate xmlns entries in 
beans.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
beans.xmlfiles for Beans 3.0. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
best practices
1 recipe
- Jackson best practices - Apply best practices for using Jackson library, including upgrade to Jackson 2.x and removing redundant annotations.
 
bindings
1 recipe
- Migrate xmlns entries in 
*.xjbfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
bom
1 recipe
- Migrate Spring Boot to Quarkus - Replace Spring Boot with Quarkus.
 
boot
52 recipes
- Comment deprecated methods in Spring 3.4 - 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 - Jetty does not yet support Servlet 6.0. This recipe will detect the presence of the 
spring-boot-starter-jettyas a first-order dependency and will add the maven propertyjakarta-servlet.versionsetting it's value to5.0.0. This will downgrade thejakarta-servletartifact if the pom's parent extends from the spring-boot-parent. - Find patterns that require updating for Spring Boot 2.5 - Looks for a series of patterns that have not yet had auto-remediation recipes developed for.
 - Find projects affected by changes to the default error view message attribute - As of Spring Boot 2.5 the 
messageattribute in the default error view was removed rather than blanked when it is not shown.spring-webmvcorspring-webfluxprojects that parse the error response JSON may need to deal with the missing item (release notes). You can still use theserver.error.include-messageproperty if you want messages to be included. - Migrate Enabled to Access Spring Boot Properties - Migrate properties found in 
application.propertiesandapplication.yml, specifically converting 'enabled' to 'access' - Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from 
cf-java-logging-support-servlettocf-java-logging-support-servlet-jakarta, to use Jakarta with Spring Boot 3. - Migrate Spring Boot 2.x projects to JUnit 5 from JUnit 4 - This recipe will migrate a Spring Boot application's tests from JUnit 4 to JUnit 5. This spring-specific migration includes conversion of Spring Test runners to Spring Test extensions and awareness of the composable Spring Test annotations.
 - Migrate Spring Boot 3.5 deprecated classes and methods - Migrate deprecated classes and methods that have been marked for removal in Spring Boot 3.5.
 - Migrate Spring Boot properties to 2.0 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.1 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.2 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.3 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.4 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.5 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.6 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.7 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.0 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.1 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.2 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.3 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.4 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.5 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 4.0 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring to Spring Boot - 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 
@EndpointSecurity properties to 3.4 - Migrate the settings for Spring Boot Management Endpoint Security fromtrue|falsetoread-only|none. - Migrate dropWizard dependencies to Spring Boot 3.x - Migrate dropWizard dependencies to the new artifactId, since these are changed with Spring Boot 3.
 - Migrate from Spring Boot 1.x to 2.0 - 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 - Migrate thymeleaf dependencies to the new artifactId, since these are changed with Spring Boot 3.
 - Migrate to Spring Boot 2.1 - 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 - 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 - 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.
 - Migrate to Spring Boot 2.4 - Migrate applications to the latest Spring Boot 2.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 2.4.
 - Migrate to Spring Boot 2.6 - Migrate applications to the latest Spring Boot 2.6 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.6.
 - Migrate to Spring Boot 3.0 - Migrate applications to the latest Spring Boot 3.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.7.
 - Migrate to Spring Boot 3.1 - Migrate applications to the latest Spring Boot 3.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 3.0.
 - Migrate to Spring Boot 3.2 - Migrate applications to the latest Spring Boot 3.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 3.1.
 - Migrate to Spring Boot 3.3 - Migrate applications to the latest Spring Boot 3.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 3.2.
 - Migrate to Spring Boot 3.4 - 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.4 - 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.
 - Migrate to Spring Boot 3.5 - 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 3.5 - 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.
 - Remove the deprecated properties 
additional-keys-to-sanitizefrom theconfigpropsandenvend points - 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 - Rename 
server.max-http-header-sizetoserver.max-http-request-header-size- 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 aWebServerFactoryCustomizer. - Replace String literals with Spring constants - Replace String literals with Spring constants where applicable.
 - Spring Boot 2.x best practices - Applies best practices to Spring Boot 2 applications.
 - Spring Boot 3.3 best practices - Applies best practices to Spring Boot 3 applications.
 - Spring Boot 3.3 best practices (only) - Applies best practices to Spring Boot 3 applications, without chaining in upgrades to Spring Boot.
 - Spring Boot 3.5 best practices - Applies best practices to Spring Boot 3.5+ applications.
 - Update OpenTelemetry resource attributes - The 
service.groupresource attribute has been deprecated for OpenTelemetry in Spring Boot 3.5. Consider using alternative attributes or remove the deprecated attribute. - Upgrade Gradle 8 to 8.4+ for Spring Boot 3.4 - Spring Boot 3.4 requires Gradle 8.4+.
 - Upgrade Gradle to 7.6.4+ for Spring Boot 3.4 - Spring Boot 3.4 requires Gradle 7.6.4.
 - Use bean name 
applicationTaskExecutorinstead oftaskExecutor- Spring Boot 3.5 removed the bean nametaskExecutor. Where this bean name is used, the recipe replaces the bean name toapplicationTaskExecutor. This also includes instances where the developer provided their own bean namedtaskExecutor. This also includes scenarios where JSR-250's@Resourceannotation is used. 
bouncycastle
2 recipes
- Migrate Bouncy Castle from 
jdk15ontojdk15to18for Java < 8 - This recipe replaces the Bouncy Castle artifacts fromjdk15ontojdk15to18.jdk15onisn't maintained anymore andjdk18onis only for Java 8 and above. Thejdk15to18artifact is the up-to-date replacement of the unmaintainedjdk15onfor Java < 8. - Migrate Bouncy Castle to 
jdk18on- This recipe will upgrade Bouncy Castle dependencies from-jdk15onor-jdk15to18to-jdk18on. 
build
1 recipe
- Add or replace Spring Boot build plugin with Quarkus build plugin - Remove Spring Boot Maven plugin if present and add Quarkus Maven plugin using the same version as the quarkus-bom.
 
byteman
1 recipe
- Use Byteman JUnit 5 dependency - Migrates Byteman JUnit 4 to JUnit 5.
 
cache
1 recipe
- Replace Spring Boot Cache with Quarkus Cache - Migrates 
spring-boot-starter-cachetoquarkus-cache. 
cacheManager
1 recipe
- Change cacheManager to use the SimpleCacheManager - Change cacheManager to use the SimpleCacheManager.
 
camel
1 recipe
- Replace Spring Boot Integration with Camel Quarkus - Migrates 
spring-boot-starter-integrationtocamel-quarkus-core. 
cdi
2 recipes
- Migrate xmlns entries in 
beans.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
beans.xmlfiles for Beans 3.0. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
CKV
110 recipes
- Disable Instance Metadata Service version 1 - As a request/response method IMDSv1 is prone to local misconfigurations.
 - Disable Kubernetes dashboard - Disabling the dashboard eliminates it as an attack vector. The dashboard add-on is disabled by default for all new clusters created on Kubernetes 1.18 or greater.
 - Enable API gateway caching - Enable caching for all methods of API Gateway.
 - Enable Azure Storage Account Trusted Microsoft Services access - Certain Microsoft services that interact with storage accounts operate from networks that cannot be granted access through network rules. Using this configuration, you can allow the set of trusted Microsoft services to bypass those network rules.
 - Enable Azure Storage secure transfer required - Microsoft recommends requiring secure transfer for all storage accounts.
 - Enable VPC Flow Logs for subnetworks - Ensure GCP VPC flow logs for subnets are enabled. Flow Logs capture information on IP traffic moving through network interfaces. This information can be used to monitor anomalous traffic and provide security insights.
 - Enable VPC flow logs and intranode visibility - Enable VPC flow logs and intranode visibility.
 - Enable 
PodSecurityPolicycontroller on Google Kubernetes Engine (GKE) clusters - EnsurePodSecurityPolicycontroller is enabled on Google Kubernetes Engine (GKE) clusters. - Enable geo-redundant backups on PostgreSQL server - Ensure PostgreSQL server enables geo-redundant backups.
 - Enable point-in-time recovery for DynamoDB - DynamoDB Point-In-Time Recovery (PITR) is an automatic backup service for DynamoDB table data that helps protect your DynamoDB tables from accidental write or delete operations.
 - Encrypt Aurora clusters - Native Aurora encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
 - Encrypt Azure VM data disk with ADE/CMK - Ensure Azure VM data disk is encrypted with ADE/CMK.
 - Encrypt CodeBuild projects - Build artifacts, such as a cache, logs, exported raw test report data files, and build results, are encrypted by default using CMKs for Amazon S3 that are managed by the AWS Key Management Service.
 - Encrypt DAX storage at rest - DAX encryption at rest automatically integrates with AWS KMS for managing the single service default key used to encrypt clusters.
 - Encrypt DocumentDB storage - The encryption feature available for Amazon DocumentDB clusters provides an additional layer of data protection by helping secure your data against unauthorized access to the underlying storage.
 - Encrypt EBS snapshots - EBS snapshots should be encrypted, as they often include sensitive information, customer PII or CPNI.
 - Encrypt EBS volume launch configurations - EBS volumes allow you to create encrypted launch configurations when creating EC2 instances and auto scaling. When the entire EBS volume is encrypted, data stored at rest on the volume, disk I/O, snapshots created from the volume, and data in-transit between EBS and EC2 are all encrypted.
 - Encrypt EBS volumes - Encrypting EBS volumes ensures that replicated copies of your images are secure even if they are accidentally exposed. AWS EBS encryption uses AWS KMS customer master keys (CMK) when creating encrypted volumes and snapshots. Storing EBS volumes in their encrypted state reduces the risk of data exposure or data loss.
 - Encrypt EFS Volumes in ECS Task Definitions in transit - Enable attached EFS definitions in ECS tasks to use encryption in transit.
 - Encrypt ElastiCache Redis at rest - ElastiCache for Redis offers default encryption at rest as a service.
 - Encrypt ElastiCache Redis in transit - ElastiCache for Redis offers optional encryption in transit. In-transit encryption provides an additional layer of data protection when transferring data over standard HTTPS protocol.
 - Encrypt Neptune storage - Encryption of Neptune storage protects data and metadata against unauthorized access.
 - Encrypt RDS clusters - Native RDS encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
 - Encrypt Redshift storage at rest - Redshift clusters should be securely encrypted at rest.
 - Ensure AKS policies add-on - Azure Policy Add-on for Kubernetes service (AKS) extends Gatekeeper v3, an admission controller webhook for Open Policy Agent (OPA), to apply at-scale enforcements and safeguards on your clusters in a centralized, consistent manner.
 - Ensure AKV secrets have an expiration date set - Ensure AKV secrets have an expiration date set.
 - Ensure AWS CMK rotation is enabled - Ensure AWS CMK rotation is enabled.
 - Ensure AWS EFS with encryption for data at rest is enabled - Ensure AWS EFS with encryption for data at rest is enabled.
 - Ensure AWS EKS cluster endpoint access is publicly disabled - Ensure AWS EKS cluster endpoint access is publicly disabled.
 - Ensure AWS Elasticsearch domain encryption for data at rest is enabled - Ensure AWS Elasticsearch domain encryption for data at rest is enabled.
 - Ensure AWS Elasticsearch domains have 
EnforceHTTPSenabled - Ensure AWS Elasticsearch domains haveEnforceHTTPSenabled. - Ensure AWS Elasticsearch has node-to-node encryption enabled - Ensure AWS Elasticsearch has node-to-node encryption enabled.
 - Ensure AWS IAM password policy has a minimum of 14 characters - Ensure AWS IAM password policy has a minimum of 14 characters.
 - Ensure AWS Lambda function is configured for function-level concurrent execution limit - Ensure AWS Lambda function is configured for function-level concurrent execution limit.
 - Ensure AWS Lambda functions have tracing enabled - Ensure AWS Lambda functions have tracing enabled.
 - Ensure AWS RDS database instance is not publicly accessible - Ensure AWS RDS database instance is not publicly accessible.
 - Ensure AWS S3 object versioning is enabled - Ensure AWS S3 object versioning is enabled.
 - Ensure Amazon EKS control plane logging enabled for all log types - Ensure Amazon EKS control plane logging enabled for all log types.
 - Ensure Azure App Service Web app redirects HTTP to HTTPS - Ensure Azure App Service Web app redirects HTTP to HTTPS.
 - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days.
 - Ensure Azure PostgreSQL database server with SSL connection is enabled - Ensure Azure PostgreSQL database server with SSL connection is enabled.
 - Ensure Azure SQL Server threat detection alerts are enabled for all threat types - Ensure Azure SQL Server threat detection alerts are enabled for all threat types.
 - Ensure Azure SQL server audit log retention is greater than 90 days - Ensure Azure SQL server audit log retention is greater than 90 days.
 - Ensure Azure SQL server send alerts to field value is set - Ensure Azure SQL server send alerts to field value is set.
 - Ensure Azure application gateway has WAF enabled - Ensure Azure application gateway has WAF enabled.
 - Ensure Azure key vault is recoverable - Ensure Azure key vault is recoverable.
 - Ensure CloudTrail log file validation is enabled - Ensure CloudTrail log file validation is enabled.
 - Ensure EC2 is EBS optimized - Ensure EC2 is EBS optimized.
 - Ensure ECR repositories are encrypted - Ensure ECR repositories are encrypted.
 - Ensure FTP Deployments are disabled - Ensure FTP Deployments are disabled.
 - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled.
 - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled.
 - Ensure GCP VM instances have block project-wide SSH keys feature enabled - Ensure GCP VM instances have block project-wide SSH keys feature enabled.
 - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled.
 - Ensure IAM password policy expires passwords within 90 days or less - Ensure IAM password policy expires passwords within 90 days or less.
 - Ensure IAM password policy prevents password reuse - Ensure IAM password policy prevents password reuse.
 - Ensure IAM password policy requires at least one lowercase letter - Ensure IAM password policy requires at least one lowercase letter.
 - Ensure IAM password policy requires at least one number - Ensure IAM password policy requires at least one number.
 - Ensure IAM password policy requires at least one symbol - Ensure IAM password policy requires at least one symbol.
 - Ensure IAM password policy requires at least one uppercase letter - Ensure IAM password policy requires at least one uppercase letter.
 - Ensure IP forwarding on instances is disabled - Ensure IP forwarding on instances is disabled.
 - Ensure Kinesis Stream is securely encrypted - Ensure Kinesis Stream is securely encrypted.
 - Ensure MSSQL servers have email service and co-administrators enabled - Ensure MSSQL servers have email service and co-administrators enabled.
 - Ensure MySQL is using the latest version of TLS encryption - Ensure MySQL is using the latest version of TLS encryption.
 - Ensure MySQL server databases have Enforce SSL connection enabled - Ensure MySQL server databases have Enforce SSL connection enabled.
 - Ensure MySQL server disables public network access - Ensure MySQL server disables public network access.
 - Ensure MySQL server enables Threat Detection policy - Ensure MySQL server enables Threat Detection policy.
 - Ensure MySQL server enables geo-redundant backups - Ensure MySQL server enables geo-redundant backups.
 - Ensure PostgreSQL server disables public network access - Ensure PostgreSQL server disables public network access.
 - Ensure PostgreSQL server enables Threat Detection policy - Ensure PostgreSQL server enables Threat Detection policy.
 - Ensure PostgreSQL server enables infrastructure encryption - Ensure PostgreSQL server enables infrastructure encryption.
 - Ensure RDS database has IAM authentication enabled - Ensure RDS database has IAM authentication enabled.
 - Ensure RDS instances have Multi-AZ enabled - Ensure RDS instances have Multi-AZ enabled.
 - Ensure Send email notification for high severity alerts is enabled - Ensure Send email notification for high severity alerts is enabled.
 - Ensure Send email notification for high severity alerts to admins is enabled - Ensure Send email notification for high severity alerts to admins is enabled.
 - Ensure VPC subnets do not assign public IP by default - Ensure VPC subnets do not assign public IP by default.
 - Ensure Web App has incoming client certificates enabled - Ensure Web App has incoming client certificates enabled.
 - Ensure Web App uses the latest version of HTTP - Ensure Web App uses the latest version of HTTP.
 - Ensure Web App uses the latest version of TLS encryption - Ensure Web App uses the latest version of TLS encryption.
 - Ensure a security contact phone number is present - Ensure a security contact phone number is present.
 - Ensure activity log retention is set to 365 days or greater - Ensure activity log retention is set to 365 days or greater.
 - Ensure all keys have an expiration date - Ensure all keys have an expiration date.
 - Ensure app service enables HTTP logging - Ensure app service enables HTTP logging.
 - Ensure app service enables detailed error messages - Ensure app service enables detailed error messages.
 - Ensure app service enables failed request tracing - Ensure app service enables failed request tracing.
 - Ensure app services use Azure files - Ensure app services use Azure files.
 - Ensure binary authorization is used - Ensure binary authorization is used.
 - Ensure compute instances launch with shielded VM enabled - Ensure compute instances launch with shielded VM enabled.
 - Ensure data stored in an S3 bucket is securely encrypted at rest - Ensure data stored in an S3 bucket is securely encrypted at rest.
 - Ensure detailed monitoring for EC2 instances is enabled - Ensure detailed monitoring for EC2 instances is enabled.
 - Ensure enhanced monitoring for Amazon RDS instances is enabled - Ensure enhanced monitoring for Amazon RDS instances is enabled.
 - Ensure key vault allows firewall rules settings - Ensure key vault allows firewall rules settings.
 - Ensure key vault enables purge protection - Ensure key vault enables purge protection.
 - Ensure key vault key is backed by HSM - Ensure key vault key is backed by HSM.
 - Ensure key vault secrets have 
content_typeset - Ensure key vault secrets havecontent_typeset. - Ensure log profile is configured to capture all activities - Ensure log profile is configured to capture all activities.
 - Ensure managed identity provider is enabled for app services - Ensure managed identity provider is enabled for app services.
 - Ensure private cluster is enabled when creating Kubernetes clusters - Ensure private cluster is enabled when creating Kubernetes clusters.
 - Ensure public network access enabled is set to False for mySQL servers - Ensure public network access enabled is set to False for mySQL servers.
 - Ensure respective logs of Amazon RDS are enabled - Ensure respective logs of Amazon RDS are enabled.
 - Ensure secure boot for shielded GKE nodes is enabled - Ensure secure boot for shielded GKE nodes is enabled.
 - Ensure shielded GKE nodes are enabled - Ensure shielded GKE nodes are enabled.
 - Ensure standard pricing tier is selected - Ensure standard pricing tier is selected.
 - Ensure storage account uses latest TLS version - Communication between an Azure Storage account and a client application is encrypted using Transport Layer Security (TLS). Microsoft recommends using the latest version of TLS for all your Microsoft Azure App Service web applications.
 - Ensure the GKE metadata server is enabled - Ensure the GKE metadata server is enabled.
 - Ensure the S3 bucket has access logging enabled - Ensure the S3 bucket has access logging enabled.
 - Make ECR tags immutable - Amazon ECR supports immutable tags, preventing image tags from being overwritten. In the past, ECR tags could have been overwritten, this could be overcome by requiring users to uniquely identify an image using a naming convention.
 - Scan images pushed to ECR - ECR Image Scanning assesses and identifies operating system vulnerabilities. Using automated image scans you can ensure container image vulnerabilities are found before getting pushed to production.
 - Set Azure Storage Account default network access to deny - Ensure Azure Storage Account default network access is set to Deny.
 - Use HTTPS for Cloudfront distribution - Secure communication by default.
 
CKV2
1 recipe
- Ensure the storage container storing activity logs is not publicly accessible - Ensure the storage container storing activity logs is not publicly accessible.
 
classic
3 recipes
- Replace Spring Boot AMQP with Quarkus Messaging RabbitMQ - Migrates 
spring-boot-starter-amqptoquarkus-messaging-rabbitmqwhen no reactor dependencies are present. - Replace Spring Boot Web with Quarkus RESTEasy Classic - Migrates 
spring-boot-starter-webtoquarkus-resteasy-jacksonwhen no reactor dependencies are present. - Replace Spring Kafka with Quarkus Kafka Client - Migrates 
spring-kafkatoquarkus-kafka-clientwhen no reactor dependencies are present. 
cloud
21 recipes
- Migrate Spring Cloud Gateway Properties - Migrate Spring Cloud Gateway properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway Proxy WebMvc Properties - Migrate Spring Cloud Gateway Proxy WebMvc properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway Proxy Webflux Properties - Migrate Spring Cloud Gateway Proxy Webflux properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway WebMvc Properties - Migrate Spring Cloud Gateway WebMvc properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway Webflux Properties - Migrate Spring Cloud Gateway Webflux properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0 - Spring Cloud Sleuth has been discontinued and only compatible with Spring Boot 2.x.
 - Migrate Spring Cloud properties to 2020 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2021 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2022 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2023 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2024 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2025 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate to New Spring Cloud Gateway Modules and Starters - Migrate to new Spring Cloud Gateway modules and starters for Spring Cloud 2025
 - Migrate to Spring Cloud 2022 - Migrate applications to the latest Spring Cloud 2022 (Kilburn) release.
 - Migrate to Spring Cloud 2023 - Migrate applications to the latest Spring Cloud 2023 (Leyton) release.
 - Migrate to Spring Cloud 2024 - Migrate applications to the latest Spring Cloud 2024 (Moorgate) release.
 - Migrate to Spring Cloud 2025 - Migrate applications to the latest Spring Cloud 2025 (Northfields) release.
 - Upgrade dependencies to Spring Cloud 2022 - Upgrade dependencies to Spring Cloud 2022 from prior 2021.x version.
 - Upgrade dependencies to Spring Cloud 2023 - Upgrade dependencies to Spring Cloud 2023 from prior 2022.x version.
 - Upgrade dependencies to Spring Cloud 2024 - Upgrade dependencies to Spring Cloud 2024 from prior 2023.x version.
 - Upgrade dependencies to Spring Cloud 2025 - Upgrade dependencies to Spring Cloud 2025 from prior 2024.x version.
 
cloudfoundry
1 recipe
- Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from 
cf-java-logging-support-servlettocf-java-logging-support-servlet-jakarta, to use Jakarta with Spring Boot 3. 
cobertura
1 recipe
- Remove Cobertura Maven plugin - This recipe will remove Cobertura, as it is not compatible with Java 11.
 
codemods
103 recipes
- Add React imports - Transforms files that do not import 
Reactto include the import in order for the new React JSX transform to work. - Adds 
DefaultThememodule augmentation to typescript projects. - See Material UI codemod projects for more details. - Combination of all deprecations - See Material UI codemod projects for more details.
 - Convert 
vartolet- Convertvartolet - Converts ExpansionPanel to use ExpansionPanel component - See Material UI codemod projects for more details.
 - Converts GridList to use Grid component - See Material UI codemod projects for more details.
 - Converts JSS styles to styled-components - See Material UI codemod projects for more details.
 - Converts JSS to TypeScript in React components - See Material UI codemod projects for more details.
 - Converts 
rootReftoref- See Material UI codemod projects for more details. - Converts 
sxprop tosxstyle prop - See Material UI codemod projects for more details. - Converts all 
@mui/materialsubmodule imports to the root module - See Material UI codemod projects for more details. - Converts base imports to use React hooks - See Material UI codemod projects for more details.
 - Converts components to use the v4 adapter module - See Material UI codemod projects for more details.
 - Ensures presets are safe to use - See Material UI codemod projects for more details.
 - Format TypeScript using ESLint Prettier plugin - Formats all TypeScript source code using the ESLint Prettier plugin.
 - Generate named exports from CommonJS modules - Generate named exports from CommonJS modules
 - Lint TypeScript code using ESLint - The default config includes the 
@typescript-eslintplugin and the correspondingplugin:@typescript-eslint/recommendedextend. - Migrate 
ImageResponseimports - This codemod moves transforms imports fromnext/servertonext/ogfor usage of Dynamic OG Image Generation. - Migrate to the New Image Component - Dangerously migrates from 
next/legacy/imageto the newnext/imageby adding inline styles and removing unused props. - Moves date pickers to 
@mui/x-date-picker- See Material UI codemod projects for more details. - Moves lab modules to 
@mui/material- See Material UI codemod projects for more details. - Moves tree view to 
@mui/x-tree-view- See Material UI codemod projects for more details. - Next.js Codemods for API Updates - Next.js provides Codemod transformations to help upgrade your Next.js codebase when an API is updated or deprecated.
 - Optimizes imports - See Material UI codemod projects for more details.
 - Prepends emotion cache - See Material UI codemod projects for more details.
 - Remove "use strict" directives - Remove "use strict" directives
 - Remove 
<a>Tags From Link Components - Remove&lt;a&gt;tags inside Link Components or add alegacyBehaviorprop to Links that cannot be auto-fixed. - Remove system props and add them to the 
sxprop - See Material UI codemod projects for more details. - Removes 
Unstyledsuffix from base components - See Material UI codemod projects for more details. - Removes 
componentprop from base components - See Material UI codemod projects for more details. - Removes 
imgPropsprop from Avatar component - See Material UI codemod projects for more details. - Rename Next Image Imports - Safely renames 
next/imageimports in existing Next.js1011or12applications tonext/legacy/imagein Next.js 13. Also renamesnext/future/imagetonext/image. - Rename Next Image Imports - Safely renames 
next/imageimports in existing Next.js1011or12applications tonext/legacy/imagein Next.js 13. Also renamesnext/future/imagetonext/image. - Renames CSS properties for Box component - See Material UI codemod projects for more details.
 - Renames CSS variables - See Material UI codemod projects for more details.
 - Renames 
Muiclassname prefix - See Material UI codemod projects for more details. - Renames 
TextFieldtoInput- See Material UI codemod projects for more details. - Renames 
alphaprop toopacity- See Material UI codemod projects for more details. - Renames 
closeIconprop tocloseButtonIcon- See Material UI codemod projects for more details. - Renames 
collapsedHeightprop totransitionCollapsedHeight- See Material UI codemod projects for more details. - Renames 
colorprop tocolorOverride- See Material UI codemod projects for more details. - Renames 
componentprop toas- See Material UI codemod projects for more details. - Renames 
gapprop tospacing- See Material UI codemod projects for more details. - Renames 
optionprop togetOptionLabel- See Material UI codemod projects for more details. - Renames 
rowprop toflexDirection="row"- See Material UI codemod projects for more details. - Renames base components to slots - See Material UI codemod projects for more details.
 - Renames components to slots - See Material UI codemod projects for more details.
 - Replace all function expressions with only 
returnstatement with simple arrow - Replace all function expressions with onlyreturnstatement with simple arrow function. - Replace lodash and underscore array functions with native JavaScript - - 
_.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 - - 
_.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 - - 
_.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) - Replace lodash and underscore utility functions with native JavaScript - - 
_.isArray(x)->Array.isArray(x)-_.isBoolean(x)->typeof(x) === 'boolean'-_.isFinite(x)->Number.isFinite(x)-_.isFunction(x)->typeof(x) === 'function'-_.isNull(x)->x === null-_.isString(x)->typeof(x) === 'string'-_.isUndefined(x)->typeof(x) === 'undefined' - Replaces 
@muiimports with@mui/material- See Material UI codemod projects for more details. - Transform AMD style 
define()calls to ES6importstatements - Transform AMD styledefine()calls to ES6importstatements - Transform AMP HOC into page config - Transforms the 
withAmpHOC into Next.js 9 page configuration. - Transform Anonymous Components into Named Components - Transforms anonymous components into named components to make sure they work with Fast Refresh. The component will have a camel-cased name based on the name of the file, and it also works with arrow functions.
 - Transform CommonJS style 
require()calls to ES6importstatements - Transform CommonJS stylerequire()calls to ES6importstatements - Update the theme creation from 
@mui/system@v5to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Update the usage of the 
sxprop to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Updates 
borderRadiusprop values - See Material UI codemod projects for more details. - Updates 
circleprop tovariant="circular"- See Material UI codemod projects for more details. - Updates 
circularprop tovariant="circular"- See Material UI codemod projects for more details. - Updates 
downprop for Hidden component - See Material UI codemod projects for more details. - Updates 
justifyprop tojustifyContentfor Grid component - See Material UI codemod projects for more details. - Updates 
minRowsandmaxRowsprops for TextareaAutosize component - See Material UI codemod projects for more details. - Updates 
overlapprop tovariant="dot"- See Material UI codemod projects for more details. - Updates 
roundvalues for theme typography - See Material UI codemod projects for more details. - Updates 
sizeprop for IconButton component - See Material UI codemod projects for more details. - Updates 
variantprop for Chip component - See Material UI codemod projects for more details. - Updates 
variantprop for CircularProgress component - See Material UI codemod projects for more details. - Updates 
variantprop for Fab component - See Material UI codemod projects for more details. - Updates 
variantprop for Skeleton component - See Material UI codemod projects for more details. - Updates 
variantprop usage - See Material UI codemod projects for more details. - Updates 
widthvalues for theme breakpoints - See Material UI codemod projects for more details. - Updates base imports to use named exports - See Material UI codemod projects for more details.
 - Updates createMuiTheme usage - See Material UI codemod projects for more details.
 - Updates import paths for core styles - See Material UI codemod projects for more details.
 - Updates link underline on hover - See Material UI codemod projects for more details.
 - Updates props for Dialog component - See Material UI codemod projects for more details.
 - Updates props for DialogTitle component - See Material UI codemod projects for more details.
 - Updates props for Modal component - See Material UI codemod projects for more details.
 - Updates props for Table component - See Material UI codemod projects for more details.
 - Updates scroll buttons for Tabs component - See Material UI codemod projects for more details.
 - Updates the usage of 
styledfrom@mui/system@v5to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Updates the usage of the 
@mui/material/Grid2,@mui/system/Grid, and@mui/joy/Gridcomponents to their updated APIs. - See Material UI codemod projects for more details. - Updates theme breakpoints - See Material UI codemod projects for more details.
 - Updates theme options - See Material UI codemod projects for more details.
 - Updates theme palette mode - See Material UI codemod projects for more details.
 - Updates theme spacing - See Material UI codemod projects for more details.
 - Updates theme spacing API - See Material UI codemod projects for more details.
 - Updates usage of ThemeProvider - See Material UI codemod projects for more details.
 - Updates usage of 
@mui/styles- See Material UI codemod projects for more details. - Updates usage of 
@mui/types- See Material UI codemod projects for more details. - Updates usage of styled engine provider - See Material UI codemod projects for more details.
 - Updates usage of transitions - See Material UI codemod projects for more details.
 - Updates usage of useAutocomplete - See Material UI codemod projects for more details.
 - Updates usage of useTransitionProps - See Material UI codemod projects for more details.
 - Updates withMobileDialog higher-order component - See Material UI codemod projects for more details.
 - Updates withWidth higher-order component - See Material UI codemod projects for more details.
 - Upgrade ECMAScript 5 to ECMAScript 6 - A collection of common ECMAScript 5 to ECMAScript 6 updates.
 - Use Built-in Font - This codemod uninstalls the 
@next/fontpackage and transforms@next/fontimports into the built-innext/font. - Use 
viewportexport - This codemod migrates certain viewport metadata toviewportexport. - Use 
withRouter- Transforms the deprecated automatically injected url property on top-level pages to usingwithRouterand therouterproperty it injects. Read more here. 
collections
2 recipes
- Adopt 
SequencedCollection- Replace older code patterns withSequencedCollectionmethods, as per https://openjdk.org/jeps/431. - Migrates to Apache Commons Collections 4.x - Migrate applications to the latest Apache Commons Collections 4.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 
commons
14 recipes
- Migrate Apache Commons Logging 1.x to SLF4J 1.x - Transforms usages of Apache Commons Logging 1.x to leveraging SLF4J 1.x directly.
 - Migrate JCL to Log4j 2.x API - Transforms code written using Apache Commons Logging to use Log4j 2.x API.
 - Migrate 
WordUtilsto Apache Commons Text - Migrateorg.apache.commons.lang.WordUtilstoorg.apache.commons.text.WordUtilsand add the Commons Text dependency. - Migrates to Apache Commons Collections 4.x - Migrate applications to the latest Apache Commons Collections 4.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 - Migrates to Apache Commons Lang 3.x - Migrate applications to the latest Apache Commons Lang 3.x release. This recipe modifies application's build files, and changes the package as per the migration release notes.
 - Migrates to Apache Commons Math 3.x - Migrate applications to the latest Apache Commons Math 3.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 - Prefer 
System.lineSeparator()- Prefer the Java standard library'sSystem.lineSeparator()over third-party usage of apache'sIOUtils.LINE_SEPARATOR. - Prefer 
java.nio.charset.StandardCharsets- Prefer the Java standard library'sjava.nio.charset.StandardCharsetsover third-party usage of apache'sorg.apache.commons.io.Charsets. - Prefer 
java.nio.charset.StandardCharsets- Prefer the Java standard library'sjava.nio.charset.StandardCharsetsoverorg.apache.commons.lang3.CharEncoding. - Prefer 
java.nio.file.Files- Prefer the Java standard library'sjava.nio.file.Filesover third-party usage of apache'sapache.commons.io.FileUtils. - Prefer 
java.util.Base64- Prefer the Java standard library'sjava.util.Base64over third-party usage of apache'sapache.commons.codec.binary.Base64. - Relocate 
org.apache.commons:commons-iotocommons-io:commons-io- The deployment oforg.apache.commons:commons-iowas a publishing mistake around 2012 which was corrected by changing the deployment GAV to be located undercommons-io:commons-io. - Replace any StringUtils#isEmpty(String) and #isNotEmpty(String) - Replace any 
StringUtils#isEmpty(String)and#isNotEmpty(String)withs == null || s.isEmpty()ands != null && !s.isEmpty(). - Use IOUtils method that include  their charset encoding - Use 
IOUtilsmethod invocations that include the charset encoding instead of using the deprecated versions that do not include a charset encoding. (e.g. convertsIOUtils.readLines(inputStream)toIOUtils.readLines(inputStream, StandardCharsets.UTF_8). 
compatibility
1 recipe
- Add Spring compatibility extensions for commonly used annotations - Adds Quarkus Spring compatibility extensions when Spring annotations are detected in the codebase.
 
compiler
2 recipes
- Change Maven Java version property values to 17 - Change maven.compiler.source and maven.compiler.target values to 17.
 - Change Maven and Gradle Java version property values to 17 - Change maven.compiler.source and maven.compiler.target values to 17.
 
connector
2 recipes
- Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Adapter schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ra.xmlfiles to WebLogic 15.1.1 
connectors
1 recipe
- Migrate xmlns entries in 
ra.xmlfiles (Connectors). - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
core
1 recipe
- Add Hibernate ORM Core if has dependencies - This recipe will add Hibernate ORM Core if has dependencies.
 
cucumber
5 recipes
- Cucumber to JUnit test 
@Suite- Migrates Cucumber tests to JUnit test@Suite. - Migrate 
cucumber-java8tocucumber-java- Migratescucumber-java8step definitions andLambdaGluehooks tocucumber-javaannotated methods. - Upgrade to Cucumber-JVM 2.x - Upgrade to Cucumber-JVM 2.x from any previous version.
 - Upgrade to Cucumber-JVM 5.x - Upgrade to Cucumber-JVM 5.x from any previous version.
 - Upgrade to Cucumber-JVM 7.x - Upgrade to Cucumber-JVM 7.x from any previous version.
 
CVE
3 recipes
- Find text-direction changes - Finds unicode control characters which can change the direction text is displayed in. These control characters can alter how source code is presented to a human reader without affecting its interpretation by tools like compilers. So a malicious patch could pass code review while introducing vulnerabilities. Note that text direction-changing unicode control characters aren't inherently malicious. These characters can appear for legitimate reasons in code written in or dealing with right-to-left languages. See: https://trojansource.codes/ for more information.
 - Secure Spring service exporters - The default Java deserialization mechanism is available via 
ObjectInputStreamclass. This mechanism is known to be vulnerable. If an attacker can make an application deserialize malicious data, it may result in arbitrary code execution. Spring’sRemoteInvocationSerializingExporteruses the default Java deserialization mechanism to parse data. As a result, all classes that extend it are vulnerable to deserialization attacks. The Spring Framework contains at leastHttpInvokerServiceExporterandSimpleHttpInvokerServiceExporterthat extendRemoteInvocationSerializingExporter. These exporters parse data from the HTTP body using the unsafe Java deserialization mechanism. See the full blog post by Artem Smotrakov on CVE-2016-1000027 from which the above description is excerpted. - Upgrade Log4j 2.x dependency version - Upgrades the Log4j 2.x dependencies to the latest 2.x version. Mitigates the Log4Shell and other Log4j2-related vulnerabilities.
 
CWE
16 recipes
- Enable CSRF attack prevention - 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.
 - Fix CWE-338 with 
SecureRandom- Use a cryptographically strong pseudo-random number generator (PRNG). - Improper privilege management - Marking code as privileged enables a piece of trusted code to temporarily enable access to more resources than are available directly to the code that called it.
 - Insecure JMS deserialization - JMS 
Objectmessages depend on Java Serialization for marshalling/unmarshalling of the message payload whenObjectMessage#getObjectis called. Deserialization of untrusted data can lead to security flaws. - Insecure cookies - Check for use of insecure cookies. Cookies should be marked as secure. This ensures that the cookie is sent only over HTTPS to prevent cross-site scripting attacks.
 - Migrates deprecated 
DefaultHttpClient- SinceDefaultHttpClientis deprecated, we need to change it to theCloseableHttpClient. It only covers the default scenario with no customHttpParamsorConnectionManager. Of note: theDefaultHttpClientdoes not support TLS 1.2. References: - Find Sec Bugs - IBM Support Pages - Partial path traversal vulnerability - Replaces 
dir.getCanonicalPath().startsWith(parent.getCanonicalPath(), which is vulnerable to partial path traversal attacks, with the more securedir.getCanonicalFile().toPath().startsWith(parent.getCanonicalFile().toPath()). To demonstrate this vulnerability, consider"/usr/outnot".startsWith("/usr/out"). The check is bypassed although/outnotis not under the/outdirectory. It's important to understand that the terminating slash may be removed when using variousStringrepresentations of theFileobject. For example, on Linux,println(new File("/var"))will print/var, butprintln(new File("/var", "/")will print/var/; however,println(new File("/var", "/").getCanonicalPath())will print/var. - Prevent clickjacking - The 
frame-ancestorsdirective 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. - Replace 
catch(Exception)with specific declared exceptions thrown in the try block - Replacescatch(Exception e)blocks with a multi-catch block (catch (SpecificException1 | SpecificException2 e)) containing only the exceptions declared thrown by method or constructor invocations within thetryblock that are not already caught by more specificcatchclauses. - Secure the use of Jackson default typing - See the blog post on this subject.
 - Secure the use of SnakeYAML's constructor - See the paper on this subject.
 - Use HTTPS for repositories - Use HTTPS for repository URLs.
 - Use 
Files#createTempDirectory- UseFiles#createTempDirectorywhen the sequenceFile#createTempFile(..)->File#delete()->File#mkdir()is used for creating a temp directory. - Use secure temporary file creation - 
java.io.File.createTempFile()has exploitable default file permissions. This recipe migrates to the more securejava.nio.file.Files.createTempFile(). - XML parser XXE vulnerability - Avoid exposing dangerous features of the XML parser by updating certain factory settings.
 - Zip slip - 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 on it.
 
CycloneDX
1 recipe
- Software bill of materials - Produces a software bill of materials (SBOM) for a project. An SBOM is a complete list of all dependencies used in a project, including transitive dependencies. The produced SBOM is in the CycloneDX XML format. Supports Gradle and Maven. Places a file named sbom.xml adjacent to the Gradle or Maven build file.
 
data
5 recipes
- Replace Spring Boot Data JPA with Quarkus Hibernate ORM Panache - Migrates 
spring-boot-starter-data-jpatoquarkus-hibernate-orm-panache. - Replace Spring Boot Data MongoDB with Quarkus MongoDB Panache - Migrates 
spring-boot-starter-data-mongodbtoquarkus-mongodb-panache. - Replace Spring Boot Data REST with Quarkus REST - Migrates 
spring-boot-starter-data-resttoquarkus-rest-jackson. - Replace Spring Boot Data Redis with Quarkus Redis Client - Migrates 
spring-boot-starter-data-redistoquarkus-redis-client. - Replace Spring Boot Elasticsearch with Quarkus Elasticsearch REST Client - Migrates 
spring-boot-starter-data-elasticsearchtoquarkus-elasticsearch-rest-client. 
database
5 recipes
- Migrate database drivers to Quarkus JDBC extensions - Replaces Spring Boot database driver dependencies with their Quarkus JDBC extension equivalents.
 - Replace Derby driver with Quarkus JDBC Derby - Migrates 
org.apache.derby:derbyorderbyclienttoio.quarkus:quarkus-jdbc-derby(excludes test scope) - Replace Derby test driver with Quarkus JDBC Derby (test scope) - Migrates 
org.apache.derby:derbywith test scope toio.quarkus:quarkus-jdbc-derbywith test scope - Replace H2 driver with Quarkus JDBC H2 - Migrates 
com.h2database:h2toio.quarkus:quarkus-jdbc-h2(excludes test scope) - Replace H2 test driver with Quarkus JDBC H2 (test scope) - Migrates 
com.h2database:h2with test scope toio.quarkus:quarkus-jdbc-h2with test scope 
datasource
1 recipe
- Replace Spring Boot JDBC with Quarkus Agroal - Migrates 
spring-boot-starter-jdbctoquarkus-agroal. 
dbrider
1 recipe
- Migrate rider-spring (JUnit4) to rider-junit5 (JUnit5) - This recipe will migrate the necessary dependencies and annotations from DbRider with JUnit4 to JUnit5 in a Spring application.
 
default
1 recipe
- Update Default Servlet Handler for Spring Framework if empty - This recipe will update Spring Framework default servlet handler if empty, as noted in the Spring Framework 6.2 documentation.
 
demo
2 recipes
- Check for github-actions updates daily - Set dependabot to check for github-actions updates daily.
 - Check for github-actions updates weekly - Set dependabot to check for github-actions updates weekly.
 
dependabot
3 recipes
- Change dependabot schedule interval - Change the schedule interval for a given package-ecosystem in a 
dependabot.ymlconfiguration file. The available configuration options for dependabot are listed on GitHub. - Check for github-actions updates daily - Set dependabot to check for github-actions updates daily.
 - Check for github-actions updates weekly - Set dependabot to check for github-actions updates weekly.
 
dependencies
6 recipes
- Change artifacts for a Maven plugin configuration - Change artifacts for a Maven plugin configuration artifacts.
 - Change dependabot schedule interval - Change the schedule interval for a given package-ecosystem in a 
dependabot.ymlconfiguration file. The available configuration options for dependabot are listed on GitHub. - Check for github-actions updates daily - Set dependabot to check for github-actions updates daily.
 - Check for github-actions updates weekly - Set dependabot to check for github-actions updates weekly.
 - Replace Spring Boot starter dependencies with Quarkus equivalents - Migrates Spring Boot starter dependencies to their Quarkus equivalents, removing version tags as Quarkus manages versions through its BOM.
 - Update Jakarta EE Platform Dependencies to 9.1.0 - Update Jakarta EE Platform Dependencies to 9.1.0
 
deployment
2 recipes
- Migrate xmlns entries in 
plan.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
plan.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inplan.xmlfiles to WebLogic 15.1.1 
deprecated
17 recipes
- Migrate from OpenJPA to EclipseLink JPA - These recipes help migrate Java Persistence applications using OpenJPA to EclipseLink JPA.
 - Migrate to Java 11 - This recipe will apply changes commonly needed when upgrading to Java 11. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 11 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 11.
 - Migrate to JavaEE6 - These recipes help with the Migration to Java EE 6, flagging and updating deprecated methods.
 - Migrate to JavaEE7 - These recipes help with the Migration to Java EE 7, flagging and updating deprecated methods.
 - Migrate to JavaEE8 - These recipes help with the Migration to Java EE 8, flagging and updating deprecated methods.
 - Update Jakarta EE annotation Dependencies to 2.1.x. - Update Jakarta EE annotation Dependencies to 2.1.x.
 - Use 
Class#getDeclaredConstructor().newInstance()- UseClass#getDeclaredConstructor().newInstance()instead of the deprecatedClass#newInstance()in Java 9 or higher. - Use 
ClassLoader#defineClass(String, byte[], int, int)- UseClassLoader#defineClass(String, byte[], int, int)instead of the deprecatedClassLoader#defineClass(byte[], int, int)in Java 1.1 or higher. - Use 
DriverManager#setLogWriter(java.io.PrintWriter)- UseDriverManager#setLogWriter(java.io.PrintWriter)instead of the deprecatedDriverManager#setLogStream(java.io.PrintStream)in Java 1.2 or higher. - Use 
LogRecord#setInstant(Instant)- UseLogRecord#setInstant(Instant)instead of the deprecatedLogRecord#setMillis(long)in Java 9 or higher. - Use 
Logger#logrb(.., ResourceBundle bundleName, ..)- UseLogger#logrb(.., ResourceBundle bundleName, ..)instead of the deprecatedjava.util.logging.Logger#logrb(.., String bundleName, ..)in Java 8 or higher. - Use 
ManagementFactory#getPlatformMXBean(PlatformLoggingMXBean.class)- UseManagementFactory#getPlatformMXBean(PlatformLoggingMXBean.class)instead of the deprecatedLogManager#getLoggingMXBean()in Java 9 or higher. - Use 
SecurityManager#checkMulticast(InetAddress)- UseSecurityManager#checkMulticast(InetAddress)instead of the deprecatedSecurityManager#checkMulticast(InetAddress, byte)in Java 1.4 or higher. - Use 
java.net.HttpURLConnection.HTTP_INTERNAL_ERROR- Usejava.net.HttpURLConnection.HTTP_INTERNAL_ERRORinstead of the deprecatedjava.net.HttpURLConnection.HTTP_SERVER_ERROR. - Use 
java.net.MulticastSocket#setTimeToLive(int)- Usejava.net.MulticastSocket#setTimeToLive(int)instead of the deprecatedjava.net.MulticastSocket#setTTL(byte)in Java 1.2 or higher. - Use 
java.net.URLDecoder#decode(String, StandardCharsets.UTF_8)- Usejava.net.URLDecoder#decode(String, StandardCharsets.UTF_8)instead of the deprecatedjava.net.URLDecoder#decode(String)in Java 10 or higher. - Use 
java.net.URLEncoder#encode(String, StandardCharsets.UTF_8)- Usejava.net.URLEncoder#encode(String, StandardCharsets.UTF_8)instead of the deprecatedjava.net.URLEncoder#encode(String)in Java 10 or higher. 
deprecation
5 recipes
- Remove Security AccessController - The Security Manager API is unsupported in Java 24. This recipe will remove the usage of 
java.security.AccessController. - Remove Security Policy - The Security Manager API is unsupported in Java 24. This recipe will remove the use of 
java.security.Policy. - Remove Security SecurityManager - The Security Manager API is unsupported in Java 24. This recipe will remove the usage of 
java.security.SecurityManager. - Replace 
System.getSecurityManager()withnull- The Security Manager API is unsupported in Java 24. This recipe will replaceSystem.getSecurityManager()withnullto make its behavior more obvious and try to simplify execution paths afterwards. - Upgrade 
actions/setup-nodenode-version- Update the Node.js version used byactions/setup-nodeif it is below the expected version number. 
derby
2 recipes
- Replace Derby driver with Quarkus JDBC Derby - Migrates 
org.apache.derby:derbyorderbyclienttoio.quarkus:quarkus-jdbc-derby(excludes test scope) - Replace Derby test driver with Quarkus JDBC Derby (test scope) - Migrates 
org.apache.derby:derbywith test scope toio.quarkus:quarkus-jdbc-derbywith test scope 
descriptors
2 recipes
- Migrate WebLogic Schemas to 14.1.2 - This recipe will migrate WebLogic schemas to 14.1.2
 - Migrate WebLogic Schemas to 15.1.1 - This recipe will migrate WebLogic schemas to 15.1.1
 
dropwizard
1 recipe
- Migrate dropWizard dependencies to Spring Boot 3.x - Migrate dropWizard dependencies to the new artifactId, since these are changed with Spring Boot 3.
 
easymock
1 recipe
- Migrate from EasyMock to Mockito - This recipe will apply changes commonly needed when migrating from EasyMock to Mockito.
 
ejb
7 recipes
- Migrate xmlns entries and javax. packages in 
ejb-jar.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries and javax. packages in 
validation.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
ejb-jar.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 Persistence Configuration schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ejb-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ejb-jar.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ejb-jar.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 RDBMS schema files to WebLogic 14.1.2 
elasticsearch
11 recipes
- Change numeric field types for Elasticsearch 9 - Handles changes between different numeric types (
LongtoInteger,inttoLong...) in Elasticsearch 9 API responses by adding appropriate conversion methods with null checks. - Migrate DenseVectorProperty.elementType from String to DenseVectorElementType enum - In Elasticsearch 9, 
DenseVectorProperty.elementType()returnsDenseVectorElementTypeenum instead ofString, and the builder methodelementType(String)now accepts the enum type. This recipe handles both builder calls and getter calls. - Migrate DenseVectorProperty.similarity from String to DenseVectorSimilarity enum - In Elasticsearch 9, 
DenseVectorProperty.similarity()returnsDenseVectorSimilarityenum instead ofString, and the builder methodsimilarity(String)now accepts the enum type. This recipe handles both builder calls and getter calls. - Migrate 
SpanTermQuery.value()from String to FieldValue - In Elasticsearch 9,SpanTermQuery.value()returns aFieldValueinstead ofString. This recipe updates calls to handle the new return type by checking if it's a string and extracting the string value. - Migrate 
matchedQueriesfrom List to Map - In Elasticsearch Java Client 9.0,Hit.matchedQueries()changed from returningList<String>toMap<String, Double>. This recipe migrates the usage by adding.keySet()for iterations and usingnew ArrayList<>(result.keySet())for assignments. - Migrate from Elasticsearch 8 to 9 - This recipe performs a comprehensive migration from Elasticsearch 8 to Elasticsearch 9, addressing breaking changes, API removals, deprecations, and required code modifications.
 - Migrate script source from String to Script/ScriptSource - Migrates 
Script.source(String)calls to useScriptSource.scriptString(String)wrapper in Elasticsearch Java client 9.x. - Rename API fields for Elasticsearch 9 - Renames various API response fields from 
valueBodyto align with Elasticsearch 9 specifications. - Rename 
Elasticsearch valueBody()methods - In Elasticsearch Java Client 9.0, the genericvalueBody()method andvalueBody(...)builder methods have been replaced with specific getter and setter methods that better reflect the type of data being returned. Similarly, forGetRepositoryResponse, theresultfield also got altered torepositories. - Replace Spring Boot Elasticsearch with Quarkus Elasticsearch REST Client - Migrates 
spring-boot-starter-data-elasticsearchtoquarkus-elasticsearch-rest-client. - Use NamedValue parameters instead of Map - Migrates 
indicesBoostanddynamicTemplatesparameters fromMaptoNamedValuein Elasticsearch Java client 9.x. 
epoll
1 recipe
- Replace 
EpollEventLoopGroupwithMultiThreadIoEventLoopGroup- Replacenew EpollEventLoopGroup()withnew MultiThreadIoEventLoopGroup(EpollIoHandler.newFactory()). 
eslint
190 recipes
- A story should not have a redundant name property - A story should not have a redundant name property See rule details for storybook/no-redundant-story-name
 - Deprecated hierarchy separator in title property - Deprecated hierarchy separator in title property See rule details for storybook/hierarchy-separator
 - Disallow Jasmine globals - Disallow Jasmine globals See rule details for jest/no-jasmine-globals
 - Disallow alias methods - Disallow alias methods See rule details for jest/no-alias-methods
 - Disallow arrow functions where they could be confused with comparisons - Disallow arrow functions where they could be confused with comparisons See rule details
 - Disallow extra closing tags for components without children - Disallow extra closing tags for components without children See rule details
 - Disallow leading or trailing decimal points in numeric literals - Disallow leading or trailing decimal points in numeric literals See rule details
 - Disallow missing parentheses around multiline JSX - Disallow missing parentheses around multiline JSX See rule details
 - Disallow multiple empty lines - Disallow multiple empty lines See rule details
 - Disallow multiple spaces - Disallow multiple spaces See rule details
 - Disallow multiple spaces between inline JSX props - Disallow multiple spaces between inline JSX props See rule details
 - Disallow or enforce spaces inside of blocks after opening block and before closing block - Disallow or enforce spaces inside of blocks after opening block and before closing block See rule details
 - Disallow or enforce spaces inside of blocks after opening block and before closing block in 
<template>- Disallow or enforce spaces inside of blocks after opening block and before closing block in<template>See rule details for vue/block-spacing - Disallow trailing whitespace at the end of lines - Disallow trailing whitespace at the end of lines See rule details
 - Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes - Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes See rule details
 - Disallow unnecessary mustache interpolations - Disallow unnecessary mustache interpolations See rule details for vue/no-useless-mustaches
 - Disallow unnecessary parentheses - Disallow unnecessary parentheses See rule details
 - Disallow unnecessary parentheses in 
<template>- Disallow unnecessary parentheses in<template>See rule details for vue/no-extra-parens - Disallow unnecessary semicolons - Disallow unnecessary semicolons See rule details
 - Disallow unnecessary v-bind directives - Disallow unnecessary v-bind directives See rule details for vue/no-useless-v-bind
 - Disallow unsupported Vue.js syntax on the specified version - Disallow unsupported Vue.js syntax on the specified version See rule details for vue/no-unsupported-features
 - Disallow usage of this in template - Disallow usage of this in template See rule details for vue/this-in-template
 - Disallow use of deprecated functions from before version 27 - Disallow use of deprecated functions from before version 27 See rule details for jest/no-deprecated-functions
 - Disallow using jest.mock() factories without an explicit type parameter - Disallow using jest.mock() factories without an explicit type parameter See rule details for jest/no-untyped-mock-factory
 - Disallow whitespace before properties - Disallow whitespace before properties See rule details
 - Do not define a title in meta - Do not define a title in meta See rule details for storybook/no-title-property-in-meta
 - Do not use testing-library directly on stories - Do not use testing-library directly on stories See rule details for storybook/use-storybook-testing-library
 - Enforce JSX indentation - Enforce JSX indentation See rule details
 - Enforce PascalCase for user-defined JSX components - Enforce PascalCase for user-defined JSX components See rule details
 - Enforce Promise or callback style in nextTick - Enforce Promise or callback style in nextTick See rule details for vue/next-tick-style
 - Enforce closing bracket location in JSX - Enforce closing bracket location in JSX See rule details
 - Enforce closing tag location for multiline JSX - Enforce closing tag location for multiline JSX See rule details
 - Enforce consistent brace style for blocks - Enforce consistent brace style for blocks See rule details
 - Enforce consistent brace style for blocks in 
<template>- Enforce consistent brace style for blocks in<template>See rule details for vue/brace-style - Enforce consistent comma style - Enforce consistent comma style See rule details
 - Enforce consistent comma style in 
<template>- Enforce consistent comma style in<template>See rule details for vue/comma-style - Enforce consistent indentation - Enforce consistent indentation See rule details
 - Enforce consistent indentation in HTML comments - Enforce consistent indentation in HTML comments See rule details for vue/html-comment-indent
 - Enforce consistent indentation in 
<script>- Enforce consistent indentation in<script>See rule details for vue/script-indent - Enforce consistent line breaks after opening and before closing braces - Enforce consistent line breaks after opening and before closing braces See rule details
 - Enforce consistent line breaks after opening and before closing braces in 
<template>- Enforce consistent line breaks after opening and before closing braces in<template>See rule details for vue/object-curly-newline - Enforce consistent line breaks inside function parentheses - Enforce consistent line breaks inside function parentheses See rule details
 - Enforce consistent linebreak style - Enforce consistent linebreak style See rule details
 - Enforce consistent linebreak style for operators - Enforce consistent linebreak style for operators See rule details
 - Enforce consistent linebreak style for operators in 
<template>- Enforce consistent linebreak style for operators in<template>See rule details for vue/operator-linebreak - Enforce consistent linebreaks in curly braces in JSX attributes and expressions - Enforce consistent linebreaks in curly braces in JSX attributes and expressions See rule details
 - Enforce consistent newlines before and after dots - Enforce consistent newlines before and after dots See rule details
 - Enforce consistent newlines before and after dots in 
<template>- Enforce consistent newlines before and after dots in<template>See rule details for vue/dot-location - Enforce consistent spacing after the `//` or `/*` in a comment - Enforce consistent spacing after the `//` or `/*` in a comment See rule details
 - Enforce consistent spacing around `*` operators in generator functions - Enforce consistent spacing around `*` operators in generator functions See rule details
 - Enforce consistent spacing before `function` definition opening parenthesis - Enforce consistent spacing before `function` definition opening parenthesis See rule details
 - Enforce consistent spacing before and after commas - Enforce consistent spacing before and after commas See rule details
 - Enforce consistent spacing before and after commas in 
<template>- Enforce consistent spacing before and after commas in<template>See rule details for vue/comma-spacing - Enforce consistent spacing before and after keywords - Enforce consistent spacing before and after keywords See rule details
 - Enforce consistent spacing before and after keywords in 
<template>- Enforce consistent spacing before and after keywords in<template>See rule details for vue/keyword-spacing - Enforce consistent spacing before and after semicolons - Enforce consistent spacing before and after semicolons See rule details
 - Enforce consistent spacing before and after the arrow in arrow functions - Enforce consistent spacing before and after the arrow in arrow functions See rule details
 - Enforce consistent spacing before and after the arrow in arrow functions in 
<template>- Enforce consistent spacing before and after the arrow in arrow functions in<template>See rule details for vue/arrow-spacing - Enforce consistent spacing before blocks - Enforce consistent spacing before blocks See rule details
 - Enforce consistent spacing before or after unary operators - Enforce consistent spacing before or after unary operators See rule details
 - Enforce consistent spacing before or after unary operators in 
<template>- Enforce consistent spacing before or after unary operators in<template>See rule details for vue/space-unary-ops - Enforce consistent spacing between keys and values in object literal properties - Enforce consistent spacing between keys and values in object literal properties See rule details
 - Enforce consistent spacing between keys and values in object literal properties in 
<template>- Enforce consistent spacing between keys and values in object literal properties in<template>See rule details for vue/key-spacing - Enforce consistent spacing inside array brackets - Enforce consistent spacing inside array brackets See rule details
 - Enforce consistent spacing inside array brackets in 
<template>- Enforce consistent spacing inside array brackets in<template>See rule details for vue/array-bracket-spacing - Enforce consistent spacing inside braces - Enforce consistent spacing inside braces See rule details
 - Enforce consistent spacing inside braces in 
<template>- Enforce consistent spacing inside braces in<template>See rule details for vue/object-curly-spacing - Enforce consistent spacing inside computed property brackets - Enforce consistent spacing inside computed property brackets See rule details
 - Enforce consistent spacing inside parentheses - Enforce consistent spacing inside parentheses See rule details
 - Enforce consistent spacing inside parentheses in 
<template>- Enforce consistent spacing inside parentheses in<template>See rule details for vue/space-in-parens - Enforce dot notation whenever possible in 
<template>- Enforce dot notation whenever possible in<template>See rule details for vue/dot-notation - Enforce line breaks after each array element - Enforce line breaks after each array element See rule details
 - Enforce line breaks after each array element in 
<template>- Enforce line breaks after each array element in<template>See rule details for vue/array-element-newline - Enforce line breaks after opening and before closing block-level tags - Enforce line breaks after opening and before closing block-level tags See rule details for vue/block-tag-newline
 - Enforce line breaks between arguments of a function call - Enforce line breaks between arguments of a function call See rule details
 - Enforce linebreaks after opening and before closing array brackets - Enforce linebreaks after opening and before closing array brackets See rule details
 - Enforce linebreaks after opening and before closing array brackets in 
<template>- Enforce linebreaks after opening and before closing array brackets in<template>See rule details for vue/array-bracket-newline - Enforce location of semicolons - Enforce location of semicolons See rule details
 - Enforce lowercase test names - Enforce lowercase test names See rule details for jest/prefer-lowercase-title
 - Enforce maximum of props on a single line in JSX - Enforce maximum of props on a single line in JSX See rule details
 - Enforce new lines between multi-line properties in Vue components - Enforce new lines between multi-line properties in Vue components See rule details for vue/new-line-between-multi-line-property
 - Enforce newlines between operands of ternary expressions - Enforce newlines between operands of ternary expressions See rule details
 - Enforce newlines between operands of ternary expressions in 
<template>- Enforce newlines between operands of ternary expressions in<template>See rule details for vue/multiline-ternary - Enforce or disallow parentheses when invoking a constructor with no arguments - Enforce or disallow parentheses when invoking a constructor with no arguments See rule details
 - Enforce or disallow spaces around equal signs in JSX attributes - Enforce or disallow spaces around equal signs in JSX attributes See rule details
 - Enforce or disallow spaces inside of curly braces in JSX attributes and expressions - Enforce or disallow spaces inside of curly braces in JSX attributes and expressions See rule details
 - Enforce order of attributes - Enforce order of attributes See rule details for vue/attributes-order
 - Enforce order of component top-level elements - Enforce order of component top-level elements See rule details for vue/block-order
 - Enforce order of component top-level elements - Enforce order of component top-level elements See rule details for vue/component-tags-order
 - Enforce order of defineEmits and defineProps compiler macros - Enforce order of defineEmits and defineProps compiler macros See rule details for vue/define-macros-order
 - Enforce order of properties in components - Enforce order of properties in components See rule details for vue/order-in-components
 - Enforce placing object properties on separate lines - Enforce placing object properties on separate lines See rule details
 - Enforce placing object properties on separate lines in 
<template>- Enforce placing object properties on separate lines in<template>See rule details for vue/object-property-newline - Enforce proper position of the first property in JSX - Enforce proper position of the first property in JSX See rule details
 - Enforce props alphabetical sorting - Enforce props alphabetical sorting See rule details
 - Enforce props indentation in JSX - Enforce props indentation in JSX See rule details
 - Enforce props with default values to be optional - Enforce props with default values to be optional See rule details for vue/no-required-prop-with-default
 - Enforce spacing around colons of switch statements - Enforce spacing around colons of switch statements See rule details
 - Enforce spacing between rest and spread operators and their expressions - Enforce spacing between rest and spread operators and their expressions See rule details
 - Enforce specific casing for the component naming style in template - Enforce specific casing for the component naming style in template See rule details for vue/component-name-in-template-casing
 - Enforce static class names order - Enforce static class names order See rule details for vue/static-class-names-order
 - Enforce test and it usage conventions - Enforce test and it usage conventions See rule details for jest/consistent-test-it
 - Enforce the casing of component name in components options - Enforce the casing of component name in components options See rule details for vue/component-options-name-casing
 - Enforce the consistent use of either backticks, double, or single quotes - Enforce the consistent use of either backticks, double, or single quotes See rule details
 - Enforce the consistent use of either double or single quotes in JSX attributes - Enforce the consistent use of either double or single quotes in JSX attributes See rule details
 - Enforce the location of arrow function bodies - Enforce the location of arrow function bodies See rule details
 - Enforce the location of single-line statements - Enforce the location of single-line statements See rule details
 - Enforce unified line brake in HTML comments - Enforce unified line brake in HTML comments See rule details for vue/html-comment-content-newline
 - Enforce unified spacing in HTML comments - Enforce unified spacing in HTML comments See rule details for vue/html-comment-content-spacing
 - Enforce use of defineOptions instead of default export. - Enforce use of defineOptions instead of default export. See rule details for vue/prefer-define-options
 - Enforce v-for directive's delimiter style - Enforce v-for directive's delimiter style See rule details for vue/v-for-delimiter-style
 - Enforce valid titles - Enforce valid titles See rule details for jest/valid-title
 - Enforce whitespace in and around the JSX opening and closing brackets - Enforce whitespace in and around the JSX opening and closing brackets See rule details
 - Enforce writing style for handlers in v-on directives - Enforce writing style for handlers in v-on directives See rule details for vue/v-on-handler-style
 - Enforces consistent spacing inside TypeScript type generics - Enforces consistent spacing inside TypeScript type generics See rule details
 - Expect space before the type declaration in the named tuple - Expect space before the type declaration in the named tuple See rule details
 - Format TypeScript using ESLint Prettier plugin - Formats all TypeScript source code using the ESLint Prettier plugin.
 - Indentation for binary operators - Indentation for binary operators See rule details
 - Interactions should be awaited - Interactions should be awaited See rule details for storybook/await-interactions
 - Lint TypeScript code using ESLint - The default config includes the 
@typescript-eslintplugin and the correspondingplugin:@typescript-eslint/recommendedextend. - Prefer await expect(...).resolves over expect(await ...) syntax - Prefer await expect(...).resolves over expect(await ...) syntax See rule details for jest/prefer-expect-resolves
 - Prefer mock resolved/rejected shorthands for promises - Prefer mock resolved/rejected shorthands for promises See rule details for jest/prefer-mock-promise-shorthand
 - Recommended ESLint Styling - Collection of stylistic ESLint rules that are recommended by the ESLint Style.
 - Recommended Jest code cleanup - Collection of cleanup ESLint rules that are recommended by eslint-plugin-jest.
 - Recommended Storybook code cleanup - Collection of cleanup ESLint rules from eslint-plugin-storybook.
 - Recommended svelte code cleanup - Collection of cleanup ESLint rules from eslint-plugin-svelte.
 - Recommended vue code cleanup - Collection of cleanup ESLint rules from eslint-plugin-vue.
 - Require a newline after each call in a method chain - Require a newline after each call in a method chain See rule details
 - Require a specific member delimiter style for interfaces and type literals - Require a specific member delimiter style for interfaces and type literals See rule details
 - Require consistent spacing around type annotations - Require consistent spacing around type annotations See rule details
 - Require empty lines around comments - Require empty lines around comments See rule details
 - Require key attribute for conditionally rendered repeated components - Require key attribute for conditionally rendered repeated components See rule details for vue/v-if-else-key
 - Require one JSX element per line - Require one JSX element per line See rule details
 - Require or disallow an empty line between class members - Require or disallow an empty line between class members See rule details
 - Require or disallow method and property shorthand syntax for object literals in 
<template>- Require or disallow method and property shorthand syntax for object literals in<template>See rule details for vue/object-shorthand - Require or disallow newline at the end of files - Require or disallow newline at the end of files See rule details
 - Require or disallow newlines around variable declarations - Require or disallow newlines around variable declarations See rule details
 - Require or disallow newlines between sibling tags in template - Require or disallow newlines between sibling tags in template See rule details for vue/padding-line-between-tags
 - Require or disallow padding lines between blocks - Require or disallow padding lines between blocks See rule details for vue/padding-line-between-blocks
 - Require or disallow padding lines between statements - Require or disallow padding lines between statements See rule details
 - Require or disallow padding lines in component definition - Require or disallow padding lines in component definition See rule details for vue/padding-lines-in-component-definition
 - Require or disallow padding within blocks - Require or disallow padding within blocks See rule details
 - Require or disallow semicolons instead of ASI - Require or disallow semicolons instead of ASI See rule details
 - Require or disallow spacing around embedded expressions of template strings - Require or disallow spacing around embedded expressions of template strings See rule details
 - Require or disallow spacing around embedded expressions of template strings in 
<template>- Require or disallow spacing around embedded expressions of template strings in<template>See rule details for vue/template-curly-spacing - Require or disallow spacing around the `` in `yield` expressions - Require or disallow spacing around the `` in `yield` expressions See rule details
 - Require or disallow spacing between function identifiers and their invocations - Require or disallow spacing between function identifiers and their invocations See rule details
 - Require or disallow spacing between function identifiers and their invocations in 
<template>- Require or disallow spacing between function identifiers and their invocations in<template>See rule details for vue/func-call-spacing - Require or disallow spacing between function identifiers and their invocations. Alias of `function-call-spacing`. - Require or disallow spacing between function identifiers and their invocations. Alias of `function-call-spacing`. See rule details
 - Require or disallow spacing between template tags and their literals - Require or disallow spacing between template tags and their literals See rule details
 - Require or disallow trailing commas - Require or disallow trailing commas See rule details
 - Require or disallow trailing commas in 
<template>- Require or disallow trailing commas in<template>See rule details for vue/comma-dangle - Require or prevent a new line after jsx elements and expressions. - Require or prevent a new line after jsx elements and expressions. See rule details
 - Require parentheses around arrow function arguments - Require parentheses around arrow function arguments See rule details
 - Require parentheses around immediate `function` invocations - Require parentheses around immediate `function` invocations See rule details
 - Require parenthesis around regex literals - Require parenthesis around regex literals See rule details
 - Require quotes around object literal property names - Require quotes around object literal property names See rule details
 - Require quotes around object literal property names in 
<template>- Require quotes around object literal property names in<template>See rule details for vue/quote-props - Require spacing around infix operators - Require spacing around infix operators See rule details
 - Require spacing around infix operators in 
<template>- Require spacing around infix operators in<template>See rule details for vue/space-infix-ops - Require static class names in template to be in a separate class attribute - Require static class names in template to be in a separate class attribute See rule details for vue/prefer-separate-static-class
 - Require template literals instead of string concatenation in 
<template>- Require template literals instead of string concatenation in<template>See rule details for vue/prefer-template - Require the use of === and !== in 
<template>- Require the use of === and !== in<template>See rule details for vue/eqeqeq - Require using .only and .skip over f and x - Require using .only and .skip over f and x See rule details for jest/no-test-prefixes
 - Stories should use PascalCase - Stories should use PascalCase See rule details for storybook/prefer-pascal-case
 - Story files should have a default export - Story files should have a default export See rule details for storybook/default-exports
 - Suggest using jest.spyOn() - Suggest using jest.spyOn() See rule details for jest/prefer-spy-on
 - Suggest using test.todo - Suggest using test.todo See rule details for jest/prefer-todo
 - Suggest using the built-in comparison matchers - Suggest using the built-in comparison matchers See rule details for jest/prefer-comparison-matcher
 - Suggest using toBe() for primitive literals - Suggest using toBe() for primitive literals See rule details for jest/prefer-to-be
 - Suggest using toContain() - Suggest using toContain() See rule details for jest/prefer-to-contain
 - Suggest using toHaveLength() - Suggest using toHaveLength() See rule details for jest/prefer-to-have-length
 - Use expect from @storybook/jest - Use expect from @storybook/jest See rule details for storybook/use-storybook-expect
 - disallow dynamic slot name - disallow dynamic slot name See rule details for svelte/no-dynamic-slot-name
 - disallow spaces around equal signs in attribute - disallow spaces around equal signs in attribute See rule details for svelte/no-spaces-around-equal-signs-in-attribute
 - disallow to use of the store itself as an operand. Need to use $ prefix or get function. - disallow to use of the store itself as an operand. Need to use $ prefix or get function. See rule details for svelte/require-store-reactive-access
 - disallow unnecessary mustache interpolations - disallow unnecessary mustache interpolations See rule details for svelte/no-useless-mustaches
 - enforce consistent indentation - enforce consistent indentation See rule details for svelte/indent
 - enforce consistent spacing after the <!-- and before the --> in a HTML comment - enforce consistent spacing after the <!-- and before the --> in a HTML comment See rule details for svelte/spaced-html-comment
 - enforce order of attributes - enforce order of attributes See rule details for svelte/sort-attributes
 - enforce quotes style of HTML attributes - enforce quotes style of HTML attributes See rule details for svelte/html-quotes
 - enforce self-closing style - enforce self-closing style See rule details for svelte/html-self-closing
 - enforce the location of first attribute - enforce the location of first attribute See rule details for svelte/first-attribute-linebreak
 - enforce the maximum number of attributes per line - enforce the maximum number of attributes per line See rule details for svelte/max-attributes-per-line
 - enforce unified spacing in mustache - enforce unified spacing in mustache See rule details for svelte/mustache-spacing
 - enforce use of shorthand syntax in attribute - enforce use of shorthand syntax in attribute See rule details for svelte/shorthand-attribute
 - enforce use of shorthand syntax in directives - enforce use of shorthand syntax in directives See rule details for svelte/shorthand-directive
 - require class directives instead of ternary expressions - require class directives instead of ternary expressions See rule details for svelte/prefer-class-directive
 - require or disallow a space before tag's closing brackets - require or disallow a space before tag's closing brackets See rule details for svelte/html-closing-bracket-spacing
 - require style directives instead of style attribute - require style directives instead of style attribute See rule details for svelte/prefer-style-directive
 
examples
5 recipes
- Add WebLogic 15.1.1 PetClinic extras - Run migration extras for migrated Spring Framework PetClinic example run on WebLogic 15.1.1.
 - Add implicit TLD with taglib 2.1 - Add 
implicit.tldfile with taglib 2.1 tosrc/main/webapp/WEB-INF/tags. - Add implicit TLD with taglib 3.0 - Add 
implicit.tldfile with taglib 3.0 tosrc/main/webapp/WEB-INF/tags. - Change cacheManager to use the SimpleCacheManager - Change cacheManager to use the SimpleCacheManager.
 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2.
 
faces
29 recipes
- Faces XHTML migration for Jakarta EE 10 - Find and replace legacy JSF namespace URIs with Jakarta Faces URNs in XHTML files.
 - Faces XHTML migration for Jakarta EE 9 - Find and replace legacy JSF namespaces and javax references with Jakarta Faces values in XHTML files.
 - Faces XHTML migration for Jakarta EE 9 - Find and replace javax references to jakarta in XHTML files.
 - JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older - Jakarta EE 8 uses Faces 2.3 a major upgrade to Jakarta packages and XML namespaces. This recipe will migrate JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older.
 - JSF 2.x to Jakarta Faces 3.x - Jakarta EE 9 uses Faces 3.0, a major upgrade to Jakarta packages and XML namespaces.
 - JSF 2.x to Jakarta Server Faces 3.x - Jakarta EE 9 uses Faces 3.0 a major upgrade to Jakarta packages and XML namespaces.
 - Jakarta Faces 4.0 to 4.1 - Jakarta EE 11 uses Faces 4.1 a minor upgrade.
 - Migrate JSF values inside EcmaScript files - Convert JSF to Faces values inside JavaScript,TypeScript, and Properties files.
 - Migrate xmlns entries in 
*taglib*.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
faces-config.xmlfiles - Jakarta EE 10 uses Faces version 4. - Migrate xmlns entries in 
faces-config.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
faces-config.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
taglib.xmlfiles - Faces 4 uses facelet-taglib 4.0. - Migrate xmlns entries in 
taglib.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
test-web.xmlfiles for Jakarta Server Faces 3 using test interfaces - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation for test interfaces like arquillian. - Migrate xmlns entries in 
web-fragment.xmlfiles - Faces 4 uses web-fragment 6.0. - Migrate xmlns entries in 
web-fragment.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web-fragment.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web.xmlfiles - Faces 4 uses web-app 6.0. - Migrate xmlns entries in 
web.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - OmniFaces Namespace Migration - Find and replace legacy OmniFaces namespaces.
 - Update Faces 
@ManagedBeanto use CDI@Named- Faces ManagedBean was deprecated in JSF 2.3 (EE8) and removed in Jakarta Faces 4.0 (EE10). Replace@ManagedBeanwith@Namedfor CDI-based bean management. - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade OmniFaces and MyFaces/Mojarra libraries to Jakarta EE11 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE10 versions.
 - Upgrade to Jakarta Faces 4.x - Jakarta EE 10 uses Faces 4.0.
 
flyway
5 recipes
- Add missing Flyway module for MySQL - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the 
flyway-mysqldependency if you are using MySQL with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Add missing Flyway module for Oracle - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the 
flyway-database-oracledependency if you are using Oracle with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Add missing Flyway module for PostgreSQL - Database modules for Flyway 10 have been split out in to separate modules for maintainability. Add the 
flyway-database-postgresqldependency if you are using PostgreSQL with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Add missing Flyway module for SQL Server - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the 
flyway-sqlserverdependency if you are using SQL Server with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Migrate to Flyway 10 - Migrate to Flyway 10. See details at Flyway V10 has landed.
 
GCP
15 recipes
- Best practices for GCP - Securely operate on Google Cloud Platform.
 - Enable VPC Flow Logs for subnetworks - Ensure GCP VPC flow logs for subnets are enabled. Flow Logs capture information on IP traffic moving through network interfaces. This information can be used to monitor anomalous traffic and provide security insights.
 - Enable VPC flow logs and intranode visibility - Enable VPC flow logs and intranode visibility.
 - Enable 
PodSecurityPolicycontroller on Google Kubernetes Engine (GKE) clusters - EnsurePodSecurityPolicycontroller is enabled on Google Kubernetes Engine (GKE) clusters. - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled.
 - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled.
 - Ensure GCP VM instances have block project-wide SSH keys feature enabled - Ensure GCP VM instances have block project-wide SSH keys feature enabled.
 - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled.
 - Ensure IP forwarding on instances is disabled - Ensure IP forwarding on instances is disabled.
 - Ensure binary authorization is used - Ensure binary authorization is used.
 - Ensure compute instances launch with shielded VM enabled - Ensure compute instances launch with shielded VM enabled.
 - Ensure private cluster is enabled when creating Kubernetes clusters - Ensure private cluster is enabled when creating Kubernetes clusters.
 - Ensure secure boot for shielded GKE nodes is enabled - Ensure secure boot for shielded GKE nodes is enabled.
 - Ensure shielded GKE nodes are enabled - Ensure shielded GKE nodes are enabled.
 - Ensure the GKE metadata server is enabled - Ensure the GKE metadata server is enabled.
 
github
10 recipes
- Add manual workflow trigger - You can manually trigger workflow runs. To trigger specific workflows in a repository, use the 
workflow_dispatchevent. - Change dependabot schedule interval - Change the schedule interval for a given package-ecosystem in a 
dependabot.ymlconfiguration file. The available configuration options for dependabot are listed on GitHub. - Check for github-actions updates daily - Set dependabot to check for github-actions updates daily.
 - Check for github-actions updates weekly - Set dependabot to check for github-actions updates weekly.
 - GitHub Actions security insights - Finds potential security issues in GitHub Actions workflows, based on Zizmor security analysis rules.
 - Migrate from tibdex/github-app-token to actions/create-github-app-token - Migrates from tibdex/github-app-token@v2 to actions/create-github-app-token@v2 and updates parameter names from snake_case to kebab-case.
 - Rename 
gradle/gradle-build-actiontogradle/actions/setup-gradle- Rename the deprecatedgradle/gradle-build-actiontogradle/actions/setup-gradle@v3. - Rename 
gradle/wrapper-validation-actiontogradle/actions/wrapper-validation- Rename the deprecatedgradle/wrapper-validation-actiontogradle/actions/wrapper-validation@v3. - Replace OSSRH secrets with Sonatype secrets - Replace deprecated OSSRH_S01 secrets with new Sonatype secrets in GitHub Actions workflows. This is an example use of the 
ReplaceSecretsandReplaceSecretKeysrecipes combined used to update the Maven publishing secrets in OpenRewrite's GitHub organization. - Upgrade 
actions/setup-nodenode-version- Update the Node.js version used byactions/setup-nodeif it is below the expected version number. 
glassfish
3 recipes
- Add explicit JAX-WS dependencies - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAX-WS. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 but the application can continue to use the 
javax.xml.bindnamespace. - Add explicit JAXB API dependencies and runtime - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Use latest JAXB API and runtime for Jakarta EE 8 - 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+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
gradle
4 recipes
- Rename 
gradle/gradle-build-actiontogradle/actions/setup-gradle- Rename the deprecatedgradle/gradle-build-actiontogradle/actions/setup-gradle@v3. - Rename 
gradle/wrapper-validation-actiontogradle/actions/wrapper-validation- Rename the deprecatedgradle/wrapper-validation-actiontogradle/actions/wrapper-validation@v3. - Upgrade Gradle 8 to 8.4+ for Spring Boot 3.4 - Spring Boot 3.4 requires Gradle 8.4+.
 - Upgrade Gradle to 7.6.4+ for Spring Boot 3.4 - Spring Boot 3.4 requires Gradle 7.6.4.
 
guava
47 recipes
- Prefer 
Files#createTempDirectory()- Replaces GuavaFiles#createTempDir()with JavaFiles#createTempDirectory(..). Transformations are limited to scopes throwing or catchingjava.io.IOException. - Prefer 
Integer#compareUnsigned- Preferjava.lang.Integer#compareUnsignedinstead of usingcom.google.common.primitives.UnsignedInts#compareorcom.google.common.primitives.UnsignedInts#compareUnsigned. - Prefer 
Integer#compare- Preferjava.lang.Integer#compareinstead of usingcom.google.common.primitives.Ints#compare. - Prefer 
Integer#divideUnsigned- Preferjava.lang.Integer#divideUnsignedinstead of usingcom.google.common.primitives.UnsignedInts#divideorcom.google.common.primitives.UnsignedInts#divideUnsigned. - Prefer 
Integer#parseUnsignedInt- Preferjava.lang.Integer#parseUnsignedIntinstead of usingcom.google.common.primitives.UnsignedInts#parseUnsignedInt. - Prefer 
Integer#remainderUnsigned- Preferjava.lang.Integer#remainderUnsignedinstead of usingcom.google.common.primitives.UnsignedInts#remainderUnsigned. - Prefer 
Long#compareUnsigned- Preferjava.lang.Long#compareUnsignedinstead of usingcom.google.common.primitives.UnsignedLongs#compareorcom.google.common.primitives.UnsignedLongs#compareUnsigned. - Prefer 
Long#compare- Preferjava.lang.Long#compareinstead of usingcom.google.common.primitives.Longs#compare. - Prefer 
Long#divideUnsigned- Preferjava.lang.Long#divideUnsignedinstead of usingcom.google.common.primitives.UnsignedLongs#divideorcom.google.common.primitives.UnsignedLongs#divideUnsigned. - Prefer 
Long#parseUnsignedInt- Preferjava.lang.Long#parseUnsignedIntinstead of usingcom.google.common.primitives.UnsignedLongs#parseUnsignedInt. - Prefer 
Long#remainderUnsigned- Preferjava.lang.Long#remainderUnsignedinstead of usingcom.google.common.primitives.UnsignedLongs#remainderUnsigned. - Prefer 
Math#addExact- Preferjava.lang.Math#addExactinstead of usingcom.google.common.math.IntMath#checkedAddorcom.google.common.math.IntMath#addExact. - Prefer 
Math#clamp- Preferjava.lang.Math#clampinstead of usingcom.google.common.primitives.*#constrainToRange. - Prefer 
Math#multiplyExact- Preferjava.lang.Math#multiplyExactinstead of usingcom.google.common.primitives.IntMath#checkedMultiplyorcom.google.common.primitives.IntMath#multiplyExact. - Prefer 
Math#subtractExact- Preferjava.lang.Math#subtractExactinstead of usingcom.google.common.primitives.IntMath#checkedSubtractorcom.google.common.primitives.IntMath#subtractExact. - Prefer 
Predicate.and(Predicate)- PreferPredicate.and(Predicate)overPredicates.and(Predicate, Predicate). - Prefer 
Runnable::run-Executoris a SAM-compatible interface, soRunnable::runis just as succinct asMoreExecutors.directExecutor()but without the third-party library requirement. - Prefer 
Short#compare- Preferjava.lang.Short#compareinstead of usingcom.google.common.primitives.Shorts#compare. - Prefer 
String#join()over GuavaJoiner#join()- Replaces supported calls tocom.google.common.base.Joiner#join()withjava.lang.String#join(). - Prefer 
java.lang.Char#compare- Preferjava.lang.Char#compareinstead of usingcom.google.common.primitives.Chars#compare. - Prefer 
java.nio.charset.StandardCharsets- Preferjava.nio.charset.StandardCharsetsinstead of usingcom.google.common.base.Charsets. - Prefer 
java.util.Collections#synchronizedNavigableMap- Preferjava.util.Collections#synchronizedNavigableMapinstead of usingcom.google.common.collect.Maps#synchronizedNavigableMap. - Prefer 
java.util.Collections#unmodifiableNavigableMap- Preferjava.util.Collections#unmodifiableNavigableMapinstead of usingcom.google.common.collect.Maps#unmodifiableNavigableMap. - Prefer 
java.util.Objects#equals- Preferjava.util.Objects#equalsinstead of usingcom.google.common.base.Objects#equal. - Prefer 
java.util.Objects#hash- Preferjava.util.Objects#hashinstead of usingcom.google.common.base.Objects#hashCodeorcom.google.common.base.Objects hash(..). - Prefer 
java.util.Objects#requireNonNullElse- Preferjava.util.Objects#requireNonNullElseinstead of usingcom.google.common.base.MoreObjects#firstNonNull. - Prefer 
java.util.Optional#or(Supplier<T extends java.util.Optional<T>>)- Preferjava.util.Optional#or(Supplier<T extends java.util.Optional<T>>)over `com.google.common.base.Optional#or(com.google.common.base.Optional). - Prefer 
java.util.Optional#orElse(null)overcom.google.common.base.Optional#orNull()- Replacescom.google.common.base.Optional#orNull()withjava.util.Optional#orElse(null). - Prefer 
java.util.Optional- Preferjava.util.Optionalinstead of usingcom.google.common.base.Optional. - Prefer 
java.util.function.Function- Preferjava.util.function.Functioninstead of usingcom.google.common.base.Function. - Prefer 
java.util.function.Predicate- Preferjava.util.function.Predicateinstead of usingcom.google.common.base.Predicate. - Prefer 
java.util.function.Supplier- Preferjava.util.function.Supplierinstead of usingcom.google.common.base.Supplier. - Prefer 
new ArrayList<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new AtomicReference<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new ConcurrentHashMap<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new CopyOnWriteArrayList<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new HashMap<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new HashSet<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new LinkedHashMap<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new LinkedHashSet<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new LinkedList<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer 
new TreeMap<>()- Prefer the Java standard library over third-party usage of Guava in simple cases like this. - Prefer the Java 11 standard library instead of Guava - Guava filled in important gaps in the Java standard library and still does. But at least some of Guava's API surface area is covered by the Java standard library now, and some projects may be able to remove Guava altogether if they migrate to standard library for these functions.
 - Prefer the Java 21 standard library instead of Guava - Guava filled in important gaps in the Java standard library and still does. But at least some of Guava's API surface area is covered by the Java standard library now, and some projects may be able to remove Guava altogether if they migrate to standard library for these functions.
 - Prefer the Java standard library instead of Guava - Guava filled in important gaps in the Java standard library and still does. But at least some of Guava's API surface area is covered by the Java standard library now, and some projects may be able to remove Guava altogether if they migrate to standard library for these functions.
 - Remove 
com.google.common.base.Optional#toJavaUtil()- Remove calls tocom.google.common.base.Optional#toJavaUtil(). - Replace 
com.google.common.base.Optional#fromJavaUtil(java.util.Optional)with argument - Replacescom.google.common.base.Optional#fromJavaUtil(java.util.Optional)with argument. 
h2
2 recipes
- Replace H2 driver with Quarkus JDBC H2 - Migrates 
com.h2database:h2toio.quarkus:quarkus-jdbc-h2(excludes test scope) - Replace H2 test driver with Quarkus JDBC H2 (test scope) - Migrates 
com.h2database:h2with test scope toio.quarkus:quarkus-jdbc-h2with test scope 
hamcrest
6 recipes
- Add 
org.hamcrest:hamcrestif it is used. - JUnit Jupiter does not include hamcrest as a transitive dependency. If needed, add a direct dependency. - Migrate Hamcrest assertions to AssertJ - Migrate Hamcrest 
assertThat(..)to AssertJAssertions. - Migrate Hamcrest assertions to JUnit Jupiter - Migrate Hamcrest 
assertThat(..)to JUnit JupiterAssertions. - Use 
Assertions#assume*(..)and Hamcrest'sMatcherAssume#assume*(..)- Many of JUnit 4'sAssume#assume(..)methods have no direct counterpart in JUnit 5 and require Hamcrest JUnit'sMatcherAssume. - Use 
MatcherAssert#assertThat(..)- JUnit 4'sAssert#assertThat(..)This method was deprecated in JUnit 4 and removed in JUnit Jupiter. - Use consistent Hamcrest matcher imports - Use consistent imports for Hamcrest matchers, and remove wrapping 
is(Matcher)calls ahead of further changes. 
handler
1 recipe
- Migrate xmlns entries in 
handler.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
health
1 recipe
- Replace Spring Boot Actuator with Quarkus SmallRye Health - Migrates 
spring-boot-starter-actuatortoquarkus-smallrye-health. 
hibernate
3 recipes
- Add Hibernate ORM Core if has dependencies - This recipe will add Hibernate ORM Core if has dependencies.
 - Migrate to Hibernate for Jakarta EE 9 - Upgrade hibernate libraries to Jakarta EE9 versions.
 - Upgrade Common open source libraries - Upgrade Common open source libraries libraries to Jakarta EE9 versions.
 
httpclient
4 recipes
- Migrate from httpcore-nio to ApacheHttpClient 5.x core dependency - Adopt 
org.apache.httpcomponents.core5:httpcore5fromorg.apache.httpcomponents:httpcore-nio. - Migrate from org.apache.httpcomponents to ApacheHttpClient 5.x dependencies - Adopt 
org.apache.httpcomponents.client5:httpclient5fromorg.apache.httpcomponents. - Migrate to ApacheHttpClient 5.x - Migrate applications to the latest Apache HttpClient 5.x 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.
 - Migrates to ApacheHttpClient 4.5.x - Migrate applications to the latest Apache HttpClient 4.5.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 
inject
3 recipes
- Add explicit Inject dependencies - Add the necessary 
inject-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Migrate deprecated 
javax.injectpackages tojakarta.inject- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.injectpackages tojakarta.inject- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. 
integration
1 recipe
- Replace Spring Boot Integration with Camel Quarkus - Migrates 
spring-boot-starter-integrationtocamel-quarkus-core. 
intellij
1 recipe
- Migrate com.intellij:annotations to org.jetbrains:annotations - This recipe will upgrade old dependency of com.intellij:annotations to the newer org.jetbrains:annotations.
 
jackson
14 recipes
- Jackson best practices - Apply best practices for using Jackson library, including upgrade to Jackson 2.x and removing redundant annotations.
 - Migrate classes from Jackson Codehaus (legacy) to Jackson FasterXML - In Jackson 2, the package and dependency coordinates moved from Codehaus to FasterXML.
 - Migrate from Jackson Codehaus (legacy) to Jackson FasterXML - In Jackson 2, the package and dependency coordinates moved from Codehaus to FasterXML.
 - Migrates from Jackson 2.x to Jackson 3.x - Migrate applications to the latest Jackson 3.x release. This recipe handles package changes (
com.fasterxml.jackson->tools.jackson), dependency updates, core class renames, exception renames, and method renames (e.g.,JsonGenerator.writeObject()->writePOJO(),JsonParser.getCurrentValue()->currentValue()). - Remove redundant Jackson 3 feature flag configurations - Remove 
ObjectMapperfeature flag configurations that set values to their new Jackson 3 defaults. For example,disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)andconfigure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)are redundant since this is now disabled by default in Jackson 3. - Remove redundant Jackson 3 feature flag configurations - Remove 
ObjectMapperfeature flag configurations that are now defaults in Jackson 3. - Remove redundant 
@JsonPropertyargument - Remove@JsonPropertyannotation or value attribute when the value matches the argument name. - Remove registrations of modules built-in to Jackson 3 - In Jackson 3, 
ParameterNamesModule,Jdk8Module, andJavaTimeModuleare built intojackson-databindand no longer need to be registered manually. This recipe removesObjectMapper.registerModule()calls for these modules. - Rename Jackson 2.x methods to 3.x equivalents - Rename Jackson methods that were renamed in 3.x (e.g., 
writeObject()towritePOJO(),getCurrentValue()tocurrentValue()). - Replace removed 
JsonGeneratorcapability methods withStreamWriteCapability- In Jackson 3,JsonGenerator.canWriteBinaryNatively()andcanWriteFormattedNumbers()were removed and replaced with theStreamWriteCapabilityenum. This recipe updates these method calls to usegetWriteCapabilities().isEnabled(StreamWriteCapability.*)instead. - Update Jackson 2.x types to 3.x - Update Jackson type names including exception types and core class renames.
 - Update Jackson package names from 2.x to 3.x - Update Jackson package imports from 
com.fasterxml.jacksontotools.jackson. - Upgrade Jackson 2.x dependencies to 3.x - Upgrade Jackson Maven dependencies from 2.x to 3.x versions and update group IDs.
 - Use modern date/time serialization defaults - Remove redundant 
@JsonFormatannotations onjava.timetypes that specify ISO-8601 patterns, as Jackson 3 uses ISO-8601 as the default format (withWRITE_DATES_AS_TIMESTAMPSnow disabled by default). 
jacoco
1 recipe
- Upgrade JaCoCo - This recipe will upgrade JaCoCo to the latest patch version, which traditionally advertises full backwards compatibility for older Java versions.
 
jakarta
100 recipes
- Add Hibernate ORM Core if has dependencies - This recipe will add Hibernate ORM Core if has dependencies.
 - Add Jakarta EE 9 Servlet Dependency - Add Jakarta EE 9 Servlet Dependency if using jakarta.servlet.ServletContext
 - Add explicit Common Annotations dependencies - Add the necessary 
annotation-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit Inject dependencies - Add the necessary 
inject-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit JAX-WS dependencies - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAX-WS. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 but the application can continue to use the 
javax.xml.bindnamespace. - Add explicit JAXB API dependencies - This recipe will add explicit API dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Add explicit JAXB API dependencies and remove runtimes - This recipe will add explicit API dependencies without runtime dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing API dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. All JAXB runtime implementation dependencies are removed. - Add explicit JAXB API dependencies and runtime - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Change artifacts for a Maven plugin configuration - Change artifacts for a Maven plugin configuration artifacts.
 - Faces XHTML migration for Jakarta EE 10 - Find and replace legacy JSF namespace URIs with Jakarta Faces URNs in XHTML files.
 - Faces XHTML migration for Jakarta EE 9 - Find and replace legacy JSF namespaces and javax references with Jakarta Faces values in XHTML files.
 - Faces XHTML migration for Jakarta EE 9 - Find and replace javax references to jakarta in XHTML files.
 - JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older - Jakarta EE 8 uses Faces 2.3 a major upgrade to Jakarta packages and XML namespaces. This recipe will migrate JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older.
 - JSF 2.x to Jakarta Faces 3.x - Jakarta EE 9 uses Faces 3.0, a major upgrade to Jakarta packages and XML namespaces.
 - JSF 2.x to Jakarta Server Faces 3.x - Jakarta EE 9 uses Faces 3.0 a major upgrade to Jakarta packages and XML namespaces.
 - Jakarta Faces 4.0 to 4.1 - Jakarta EE 11 uses Faces 4.1 a minor upgrade.
 - Migrate JSF values inside EcmaScript files - Convert JSF to Faces values inside JavaScript,TypeScript, and Properties files.
 - Migrate Jakarta EE 9 api dependencies to Jakarta EE 10 versions - Jakarta EE 10 updates some apis compared to Jakarta EE 9.
 - Migrate Tag Libraries to 2.0 (Jakarta EE 9) - Upgrade Jakarta Standard Tag libraries to 2.0 (Jakarta EE9) versions.
 - Migrate XJC Bindings to Jakata XML - Java EE has been rebranded to Jakarta EE, migrates the namespace and version in XJC bindings.
 - Migrate deprecated 
javax.activationpackages tojakarta.activation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.activationpackages tojakarta.activation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotation.securitypackages tojakarta.annotation.security- Change type of classes in thejavax.annotation.securitypackage to jakarta. - Migrate deprecated 
javax.annotation.sqlpackages tojakarta.annotation.sql- Change type of classes in thejavax.annotation.sqlpackage to jakarta. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. Excludesjavax.annotation.processing. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Change type of classes in thejavax.annotationpackage to jakarta. - Migrate deprecated 
javax.annotationtojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotationtojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.batchpackages tojakarta.batch- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.batchpackages tojakarta.batch- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.injectpackages tojakarta.inject- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.injectpackages tojakarta.inject- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.transactionpackages tojakarta.transaction- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.transactionpackages tojakarta.transaction- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.validationpackages tojakarta.validation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.validationpackages tojakarta.validation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.bindpackages tojakarta.xml.bind- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.bindpackages tojakarta.xml.bind- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.wspackages tojakarta.xml.ws- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.wspackages tojakarta.xml.ws- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate from JavaX to Jakarta EE 9.1 Namespaces - These recipes help with Migration From JavaX to Jakarta EE 9.1 Namespaces.
 - Migrate javax.javaee-web-api to jakarta.jakartaee-web-api (Jakarta EE 9) - Update Java EE Web API dependency to Jakarta EE Web Profile API 9.1
 - Migrate javax.jms to jakarta.jms on MDB - Migrate javax.jms to jakarta.jms on MDB
 - Migrate javax.mvc to 2.0 (Jakarta EE 9) - Upgrade Jakarta Model-View-Controller libraries to 2.0 (Jakarta EE9) versions.
 - Migrate to Hibernate for Jakarta EE 9 - Upgrade hibernate libraries to Jakarta EE9 versions.
 - Migrate to Jakarta EE 10 - These recipes help with the Migration to Jakarta EE 10, flagging and updating deprecated methods.
 - Migrate to Jakarta EE 11 - These recipes help with the Migration to Jakarta EE 11, flagging and updating deprecated methods.
 - Migrate to Jakarta EE 9 - Jakarta EE 9 is the first version of Jakarta EE that uses the new 
jakartanamespace. - Migrate to Jakarta EE 9.1 - These recipes help with Migration to Jakarta EE 9.1, flagging and updating deprecated methods.
 - Migrate to Java 11 - This recipe will apply changes commonly needed when upgrading to Java 11. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 11 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 11.
 - Migrate xmlns entries and javax. packages in 
ejb-jar.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries and javax. packages in 
validation.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
**/batch-jobs/*.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
**/validation/*.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
*.tldfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
*.xjbfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
*taglib*.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
application-client.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
application.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
batch.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
beans.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
beans.xmlfiles for Beans 3.0. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
ejb-jar.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
faces-config.xmlfiles - Jakarta EE 10 uses Faces version 4. - Migrate xmlns entries in 
faces-config.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
faces-config.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
handler.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
orm.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
permissions.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
ra.xmlfiles (Connectors). - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
taglib.xmlfiles - Faces 4 uses facelet-taglib 4.0. - Migrate xmlns entries in 
taglib.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
test-*.xmlfiles for Jakarta EE 9.1 using test interfaces - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation for test interfaces like arquillian. - Migrate xmlns entries in 
test-web.xmlfiles for Jakarta Server Faces 3 using test interfaces - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation for test interfaces like arquillian. - Migrate xmlns entries in 
web-fragment.xmlfiles - Faces 4 uses web-fragment 6.0. - Migrate xmlns entries in 
web-fragment.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web-fragment.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web.xmlfiles - Faces 4 uses web-app 6.0. - Migrate xmlns entries in 
web.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
webservices.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Mitigate Unaffected Non-EE Jakarta 9 Packages - Mitigate Unaffected Non-EE Jakarta 9 Packages. Reference: https://github.com/jakartaee/platform/blob/main/namespace/unaffected-packages.adoc
 - OmniFaces Namespace Migration - Find and replace legacy OmniFaces namespaces.
 - Update Faces 
@ManagedBeanto use CDI@Named- Faces ManagedBean was deprecated in JSF 2.3 (EE8) and removed in Jakarta Faces 4.0 (EE10). Replace@ManagedBeanwith@Namedfor CDI-based bean management. - Update Jakarta EE Platform Dependencies to 9.1.0 - Update Jakarta EE Platform Dependencies to 9.1.0
 - Upgrade Common open source libraries - Upgrade Common open source libraries libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade OmniFaces and MyFaces/Mojarra libraries to Jakarta EE11 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE10 versions.
 - Upgrade to Jakarta Faces 4.x - Jakarta EE 10 uses Faces 4.0.
 - Use Jakarta Swagger Artifacts - Migrate from javax Swagger artifacts to Jakarta versions.
 - Use latest JAXB API and runtime for Jakarta EE 8 - 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+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. - Use the latest JAX-WS API and runtime for Jakarta EE 8 - Update build files to use the latest JAX-WS runtime from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. The recipe will add a JAX-WS run-time, in Gradle 
compileOnly+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
jakartaee
6 recipes
- JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older - Jakarta EE 8 uses Faces 2.3 a major upgrade to Jakarta packages and XML namespaces. This recipe will migrate JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older.
 - JSF 2.x to Jakarta Server Faces 3.x - Jakarta EE 9 uses Faces 3.0 a major upgrade to Jakarta packages and XML namespaces.
 - Migrate from JavaX to Jakarta EE 9.1 Namespaces - These recipes help with Migration From JavaX to Jakarta EE 9.1 Namespaces.
 - Migrate to Jakarta EE 9.1 - These recipes help with Migration to Jakarta EE 9.1, flagging and updating deprecated methods.
 - Update Jakarta Persistence to 3.1 - Update Jakarta Persistence to 3.1.
 - Update Jakarta Persistence to 3.2 - Update Jakarta Persistence to 3.2.
 
java
10 recipes
- JSpecify best practices - Apply JSpecify best practices, such as migrating off of alternatives, and adding missing 
@Nullableannotations. - Migrate JUL to Log4j 2.x API - Transforms code written using 
java.util.loggingto use Log4j 2.x API. - Migrate JUL to SLF4J - Migrates usage of Java Util Logging (JUL) to using SLF4J directly.
 - Migrate WebLogic Schemas to 14.1.2 - This recipe will migrate WebLogic schemas to 14.1.2
 - Migrate WebLogic Schemas to 15.1.1 - This recipe will migrate WebLogic schemas to 15.1.1
 - Migrate to JSpecify - This recipe will migrate to JSpecify annotations from various other nullability annotation standards.
 - Migrate to WebLogic 14.1.1 - This recipe will apply changes required for migrating to WebLogic 14.1.1
 - Migrate to WebLogic 14.1.2 - This recipe will apply changes required for migrating to WebLogic 14.1.2
 - Migrate to WebLogic 15.1.1 - This recipe will apply changes required for migrating to WebLogic 15.1.1 and Jakarta EE 9.1
 - Mitigation of Java XML Bind Deprecation in Java 11 vs WebLogic 14.1.2 - This recipe will mitigate the Javax XML Bind deprecation in Java 11 vs WebLogic 14.1.2
 
java10
1 recipe
- Use local variable type inference - 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. 
java11
28 recipes
- Add explicit Common Annotations dependencies - Add the necessary 
annotation-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit Inject dependencies - Add the necessary 
inject-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit JAX-WS dependencies - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAX-WS. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 but the application can continue to use the 
javax.xml.bindnamespace. - Add explicit JAXB API dependencies - This recipe will add explicit API dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Add explicit JAXB API dependencies and remove runtimes - This recipe will add explicit API dependencies without runtime dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing API dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. All JAXB runtime implementation dependencies are removed. - Add explicit JAXB API dependencies and runtime - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Do not package 
java.xml.bindandjava.activationmodules in WebSphere Liberty applications - Thejava.xml.bindandjava.activationmodules were removed in Java11. Websphere Liberty provides its own implementation of the modules, which can be used by specifying thejaxb-2.2feature in the server.xml file. This recipe updates thejavax.xml.bindandjavax.activationdependencies to use theprovidedscope to avoid class loading issues. - Do not package 
java.xml.wsmodule in WebSphere Liberty applications - Thejava.xml.wsmodule was removed in Java11. Websphere Liberty provides its own implementation of the module, which can be used by specifying thejaxws-2.2feature in the server.xml file. This recipe updates thejavax.xml.wsdependency to use theprovidedscope to avoid class loading issues. - Migrate Lombok to a Java 11 compatible version - Update Lombok dependency to a version that is compatible with Java 11 and migrate experimental Lombok types that have been promoted.
 - Migrate from IBM Runtimes to Oracle Runtimes - This recipe will apply changes commonly needed when upgrading Java versions. The solutions provided in this list are solutions necessary for migrating from IBM Runtimes to Oracle Runtimes.
 - Migrate to IBM Semeru Runtimes - 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 Java 11 - This recipe will apply changes commonly needed when upgrading to Java 11. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 11 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 11.
 - Prefer 
java.util.Objects#requireNonNullElse- Preferjava.util.Objects#requireNonNullElseinstead of usingcom.google.common.base.MoreObjects#firstNonNull. - Prefer the Java 11 standard library instead of Guava - Guava filled in important gaps in the Java standard library and still does. But at least some of Guava's API surface area is covered by the Java standard library now, and some projects may be able to remove Guava altogether if they migrate to standard library for these functions.
 - Remove Cobertura Maven plugin - This recipe will remove Cobertura, as it is not compatible with Java 11.
 - Remove 
Thread.destroy()andThread.stop(Throwable)- Thejava.lang.Thread.destroy()method was never implemented, and thejava.lang.Thread.stop(java.lang.Throwable)method has been unusable since Java SE 8. This recipe removes any usage of these methods from your application. - Replace 
Paths.getwithPath.of- Thejava.nio.file.Paths.getmethod was introduced in Java SE 7. Thejava.nio.file.Path.ofmethod was introduced in Java SE 11. This recipe replaces all usages ofPaths.getwithPath.offor consistency. - Replace 
javax.security.auth.Policywithjava.security.Policy- Thejavax.security.auth.Policyclass is not available from Java SE 11 onwards. - Upgrade build to Java 11 - Updates build files to use Java 11 as the target/source.
 - Upgrade plugins to Java 11 compatible versions - Updates plugins to version compatible with Java 11.
 - Use 
com.ibm.jsse2instead ofcom.sun.net.ssl.internal.ssl- Do not use thecom.sun.net.ssl.internal.ssl.Providerclass. - Use 
com.ibm.net.ssl.www2.protocol.https.Handlerinstead ofcom.sun.net.ssl.internal.www.protocol.https.Handler- Do not use thecom.sun.net.ssl.internal.www.protocol.https.Handlerclass. - Use 
com.ibm.net.ssl.www2.protocolinstead ofcom.sun.net.ssl.internal.www.protocol- Do not use thecom.sun.net.ssl.internal.www.protocolpackage. - Use 
com.sun.security.auth.module.Krb5LoginModuleinstead ofcom.ibm.security.auth.module.Krb5LoginModule- Do not use thecom.ibm.security.auth.module.Krb5LoginModuleclass. - Use 
com.sun.xml.bind.*instead ofcom.sun.xml.internal.bind.*- Do not use APIs fromcom.sun.xml.internal.bind.*packages. - Use 
javax.net.sslinstead ofcom.sun.net.ssl- Do not use APIs fromcom.sun.net.sslpackages. - Use latest JAXB API and runtime for Jakarta EE 8 - 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+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. - Use the latest JAX-WS API and runtime for Jakarta EE 8 - Update build files to use the latest JAX-WS runtime from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. The recipe will add a JAX-WS run-time, in Gradle 
compileOnly+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
java17
23 recipes
- Add 
lombok-mapstruct-bindingwhen both MapStruct and Lombok are used - Add thelombok-mapstruct-bindingannotation processor as needed when both MapStruct and Lombok are used. - Adopt 
setLongThreadIDinjava.util.logging.LogRecord- Avoid using the deprecated methods injava.util.logging.LogRecord - Adopt 
setLongThreadIDinjava.util.logging.LogRecord- Avoid using the deprecated methods injava.util.logging.LogRecord. - Change Maven Java version property values to 17 - Change maven.compiler.source and maven.compiler.target values to 17.
 - Change Maven and Gradle Java version property values to 17 - Change maven.compiler.source and maven.compiler.target values to 17.
 - Migrate to Java 17 - This recipe will apply changes commonly needed when migrating to Java 17. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 17 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 17.
 - Migrate to Java 17 - This recipe will apply changes commonly needed when migrating to Java 17. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 17 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 17.
 - Migrate to Java 17 - This recipe will apply changes commonly needed when migrating to Java 17. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 17 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 17.
 - Remove 
Runtime.traceInstructions(boolean)andRuntime.traceMethodCallsmethods - ThetraceInstructionsandtraceMethodCallsmethods injava.lang.Runtimewere deprecated in Java SE 9 and are no longer available in Java SE 13 and later. The recipe removes the invocations of these methods since the method invocations do nothing functionally. - Remove 
Thread.countStackFrames()method -Thread.countStackFrames()has been removed in Java SE 14 and has been changed in this release to unconditionally throwUnsupportedOperationExceptionThis recipe removes the usage of this method in your application as long as the method is not assigned to a variable. For more information on the Java SE 14 deprecation of this method, see https://bugs.java.com/bugdatabase/view_bug?bug_id=8205132. - Replace 
RMIConnectorServer.CREDENTIAL_TYPESconstant - This recipe replaces theRMIConnectorServer.CREDENTIAL_TYPESconstant with theRMIConnectorServer.CREDENTIALS_FILTER_PATTERNconstant. - Replace 
SSLSession.getPeerCertificateChain()method - Thejavax.net.ssl.SSLSession.getPeerCertificateChain()method implementation was removed from the SunJSSE provider and HTTP client implementation in Java SE 15. The default implementation will now throw anUnsupportedOperationException. Applications using this method should be updated to use thejavax.net.ssl.SSLSession.getPeerCertificates()method instead. - Replace 
com.sun.net.sslpackage - The internal APIcom.sun.net.sslis removed. The package was intended for internal use only and replacement APIs can be found in thejavax.net.sslpackage. - Replace 
finalizemethod injava.io.FileInputStreamandjava.io.FileOutputStream- Thefinalizemethod injava.io.FileInputStreamandjava.io.FileOutputStreamis no longer available in Java SE 12 and later. The recipe replaces it with theclosemethod. - Replace 
finalizemethod injava.util.zip.ZipFile,java.util.zip.Inflaterandjava.util.zip.Deflater- Thefinalizemethod injava.util.zip.ZipFileis replaced with theclosemethod and is replaced by theendmethod injava.util.zip.Inflaterandjava.util.zip.Deflateras it is no longer available in Java SE 12 and later. - Set visibility of 
premainandagentmainmethods topublic- Check for a behavior change in Java agents. - Set visibility of 
premainandagentmainmethods topublic- Check for a behavior change in Java agents. - Upgrade build to Java 17 - Updates build files to use Java 17 as the target/source.
 - Upgrade plugins to Java 17 compatible versions - Updates plugins to version compatible with Java 17.
 - Use 
SunJSSEinstead ofcom.sun.net.ssl.internal.ssl.Provider- Thecom.sun.net.ssl.internal.ssl.Providerprovider name was removed. - Use 
SunJSSEinstead ofcom.sun.net.ssl.internal.ssl.Provider- Thecom.sun.net.ssl.internal.ssl.Providerprovider name was removed. - Use 
java.security.certinstead ofjavax.security.cert- Thejavax.security.certpackage has been deprecated for removal. - Use 
java.security.certinstead ofjavax.security.cert- Thejavax.security.certpackage has been deprecated for removal. 
java21
11 recipes
- Adopt 
SequencedCollection- Replace older code patterns withSequencedCollectionmethods, as per https://openjdk.org/jeps/431. - [Adopt 
javax.security.auth.Subject.current()andjavax.security.auth.Subject.callAs()methods](/recipes/java/migrate/removedsubjectmethods.md) - _Replaces thejavax.security.auth.Subject.getSubject()andjavax.security.auth.Subject.doAs()methods withjavax.security.auth.Subject.current()andjavax.security.auth.Subject.callAs()`._ - Adopt switch pattern matching (JEP 441) - JEP 441 describes how some switch statements can be improved with pattern matching. This recipe applies some of those improvements where applicable.
 - Avoid using the deprecated empty 
finalize()method injava.desktop- The java.desktop module had a few implementations of finalize() that did nothing and have been removed. This recipe will remove these methods. - Find Virtual Thread opportunities - Find opportunities to convert existing code to use Virtual Threads.
 - Find non-virtual 
ExecutorServicecreation - Find all places where staticjava.util.concurrent.Executorsmethod creates a non-virtualjava.util.concurrent.ExecutorService. This recipe can be used to search froExecutorServicethat can be replaced by Virtual Thread executor. - Migrate to Java 21 - This recipe will apply changes commonly needed when migrating to Java 21. 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 21 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 21.
 - Prefer 
Math#clamp- Preferjava.lang.Math#clampinstead of usingcom.google.common.primitives.*#constrainToRange. - Prefer the Java 21 standard library instead of Guava - Guava filled in important gaps in the Java standard library and still does. But at least some of Guava's API surface area is covered by the Java standard library now, and some projects may be able to remove Guava altogether if they migrate to standard library for these functions.
 - Upgrade build to Java 21 - Updates build files to use Java 21 as the target/source.
 - Upgrade plugins to Java 21 compatible versions - Updates plugins and dependencies to version compatible with Java 21.
 
java25
5 recipes
- Migrate to Java 25 - 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.
 - Remove Security AccessController - The Security Manager API is unsupported in Java 24. This recipe will remove the usage of 
java.security.AccessController. - Remove Security Policy - The Security Manager API is unsupported in Java 24. This recipe will remove the use of 
java.security.Policy. - Remove Security SecurityManager - The Security Manager API is unsupported in Java 24. This recipe will remove the usage of 
java.security.SecurityManager. - Replace 
System.getSecurityManager()withnull- The Security Manager API is unsupported in Java 24. This recipe will replaceSystem.getSecurityManager()withnullto make its behavior more obvious and try to simplify execution paths afterwards. 
java6
1 recipe
- Migrate to Java 6 - This recipe will apply changes commonly needed when upgrading to Java 6. This recipe will also replace deprecated API with equivalents when there is a clear migration strategy.
 
java7
1 recipe
- Migrate to Java 7 - This recipe will apply changes commonly needed when upgrading to Java 7. This recipe will also replace deprecated API with equivalents when there is a clear migration strategy.
 
java8
1 recipe
- Migrate to Java 8 - This recipe will apply changes commonly needed when upgrading to Java 8. This recipe will also replace deprecated API with equivalents when there is a clear migration strategy.
 
javaee
2 recipes
- Use latest JAXB API and runtime for Jakarta EE 8 - 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+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. - Use the latest JAX-WS API and runtime for Jakarta EE 8 - Update build files to use the latest JAX-WS runtime from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. The recipe will add a JAX-WS run-time, in Gradle 
compileOnly+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
javaee6
1 recipe
- Migrate to JavaEE6 - These recipes help with the Migration to Java EE 6, flagging and updating deprecated methods.
 
javaee7
2 recipes
- Migrate from OpenJPA to EclipseLink JPA - These recipes help migrate Java Persistence applications using OpenJPA to EclipseLink JPA.
 - Migrate to JavaEE7 - These recipes help with the Migration to Java EE 7, flagging and updating deprecated methods.
 
javaee8
1 recipe
- Migrate to JavaEE8 - These recipes help with the Migration to Java EE 8, flagging and updating deprecated methods.
 
javax
36 recipes
- Add explicit Common Annotations dependencies - Add the necessary 
annotation-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit Inject dependencies - Add the necessary 
inject-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit JAX-WS dependencies - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAX-WS. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 but the application can continue to use the 
javax.xml.bindnamespace. - Add explicit JAXB API dependencies - This recipe will add explicit API dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Add explicit JAXB API dependencies and remove runtimes - This recipe will add explicit API dependencies without runtime dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing API dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. All JAXB runtime implementation dependencies are removed. - Add explicit JAXB API dependencies and runtime - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older - Jakarta EE 8 uses Faces 2.3 a major upgrade to Jakarta packages and XML namespaces. This recipe will migrate JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older.
 - Migrate XJC Bindings to Jakata XML - Java EE has been rebranded to Jakarta EE, migrates the namespace and version in XJC bindings.
 - Migrate deprecated 
javax.activationpackages tojakarta.activation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.activationpackages tojakarta.activation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotation.securitypackages tojakarta.annotation.security- Change type of classes in thejavax.annotation.securitypackage to jakarta. - Migrate deprecated 
javax.annotation.sqlpackages tojakarta.annotation.sql- Change type of classes in thejavax.annotation.sqlpackage to jakarta. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. Excludesjavax.annotation.processing. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotationpackages tojakarta.annotation- Change type of classes in thejavax.annotationpackage to jakarta. - Migrate deprecated 
javax.annotationtojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.annotationtojakarta.annotation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.batchpackages tojakarta.batch- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.batchpackages tojakarta.batch- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.injectpackages tojakarta.inject- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.injectpackages tojakarta.inject- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.transactionpackages tojakarta.transaction- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.transactionpackages tojakarta.transaction- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.validationpackages tojakarta.validation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.validationpackages tojakarta.validation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.bindpackages tojakarta.xml.bind- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.bindpackages tojakarta.xml.bind- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.wspackages tojakarta.xml.ws- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.wspackages tojakarta.xml.ws- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Mitigation of Java XML Bind Deprecation in Java 11 vs WebLogic 14.1.2 - This recipe will mitigate the Javax XML Bind deprecation in Java 11 vs WebLogic 14.1.2
 - Use latest JAXB API and runtime for Jakarta EE 8 - 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+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. - Use the latest JAX-WS API and runtime for Jakarta EE 8 - Update build files to use the latest JAX-WS runtime from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. The recipe will add a JAX-WS run-time, in Gradle 
compileOnly+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
jaxb
11 recipes
- Add explicit JAX-WS dependencies - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAX-WS. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 but the application can continue to use the 
javax.xml.bindnamespace. - Add explicit JAXB API dependencies - This recipe will add explicit API dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Add explicit JAXB API dependencies and remove runtimes - This recipe will add explicit API dependencies without runtime dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing API dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. All JAXB runtime implementation dependencies are removed. - Add explicit JAXB API dependencies and runtime - This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAXB. Any existing dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 version 2.x which allows for the continued use of the 
javax.xml.bindnamespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakartawill update to versions greater than 3.x which necessitates the package change as well. - Migrate XJC Bindings to Jakata XML - Java EE has been rebranded to Jakarta EE, migrates the namespace and version in XJC bindings.
 - Migrate deprecated 
javax.xml.bindpackages tojakarta.xml.bind- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.bindpackages tojakarta.xml.bind- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate to Jakarta EE 9 - Jakarta EE 9 is the first version of Jakarta EE that uses the new 
jakartanamespace. - Migrate to Java 11 - This recipe will apply changes commonly needed when upgrading to Java 11. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 11 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 11.
 - Migrate xmlns entries in 
*.xjbfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Use latest JAXB API and runtime for Jakarta EE 8 - 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+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
jaxws
5 recipes
- Migrate deprecated 
javax.xml.wspackages tojakarta.xml.ws- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.xml.wspackages tojakarta.xml.ws- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate to Jakarta EE 9 - Jakarta EE 9 is the first version of Jakarta EE that uses the new 
jakartanamespace. - Migrate to Java 11 - This recipe will apply changes commonly needed when upgrading to Java 11. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. 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 11 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 11.
 - Use the latest JAX-WS API and runtime for Jakarta EE 8 - Update build files to use the latest JAX-WS runtime from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. The recipe will add a JAX-WS run-time, in Gradle 
compileOnly+testImplementationand Mavenprovidedscope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavaxnamespace, despite the move to the Jakarta artifact. 
jboss
2 recipes
- JBoss Logging Best Practices - This recipe applies best practices for logging in JBoss applications. It includes converting argument arrays to varargs for better readability and performance.
 - Migrate JBoss Logging to SLF4J - Migrates usage of the JBoss Logging facade to using SLF4J.
 
jdbc
4 recipes
- Migrate database drivers to Quarkus JDBC extensions - Replaces Spring Boot database driver dependencies with their Quarkus JDBC extension equivalents.
 - Migrate xmlns entries in 
*-jdbc.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JDBC schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
*-jdbc.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries in*-jdbc.xmlfiles to WebLogic 15.1.1 - Replace Spring Boot JDBC with Quarkus Agroal - Migrates 
spring-boot-starter-jdbctoquarkus-agroal. 
JDK
1 recipe
- Replace invocations of 
finalize()onFileInputStreamandFileOutputStreamwithclose()- Replace invocations of the deprecatedfinalize()method onFileInputStreamandFileOutputStreamwithclose(). 
Jest
17 recipes
- Disallow Jasmine globals - Disallow Jasmine globals See rule details for jest/no-jasmine-globals
 - Disallow alias methods - Disallow alias methods See rule details for jest/no-alias-methods
 - Disallow use of deprecated functions from before version 27 - Disallow use of deprecated functions from before version 27 See rule details for jest/no-deprecated-functions
 - Disallow using jest.mock() factories without an explicit type parameter - Disallow using jest.mock() factories without an explicit type parameter See rule details for jest/no-untyped-mock-factory
 - Enforce lowercase test names - Enforce lowercase test names See rule details for jest/prefer-lowercase-title
 - Enforce test and it usage conventions - Enforce test and it usage conventions See rule details for jest/consistent-test-it
 - Enforce valid titles - Enforce valid titles See rule details for jest/valid-title
 - Prefer await expect(...).resolves over expect(await ...) syntax - Prefer await expect(...).resolves over expect(await ...) syntax See rule details for jest/prefer-expect-resolves
 - Prefer mock resolved/rejected shorthands for promises - Prefer mock resolved/rejected shorthands for promises See rule details for jest/prefer-mock-promise-shorthand
 - Recommended Jest code cleanup - Collection of cleanup ESLint rules that are recommended by eslint-plugin-jest.
 - Require using .only and .skip over f and x - Require using .only and .skip over f and x See rule details for jest/no-test-prefixes
 - Suggest using jest.spyOn() - Suggest using jest.spyOn() See rule details for jest/prefer-spy-on
 - Suggest using test.todo - Suggest using test.todo See rule details for jest/prefer-todo
 - Suggest using the built-in comparison matchers - Suggest using the built-in comparison matchers See rule details for jest/prefer-comparison-matcher
 - Suggest using toBe() for primitive literals - Suggest using toBe() for primitive literals See rule details for jest/prefer-to-be
 - Suggest using toContain() - Suggest using toContain() See rule details for jest/prefer-to-contain
 - Suggest using toHaveLength() - Suggest using toHaveLength() See rule details for jest/prefer-to-have-length
 
jetbrains
1 recipe
- Migrate com.intellij:annotations to org.jetbrains:annotations - This recipe will upgrade old dependency of com.intellij:annotations to the newer org.jetbrains:annotations.
 
jetty
1 recipe
- Downgrade Jakarta Servlet API to 5.0 when using Jetty - Jetty does not yet support Servlet 6.0. This recipe will detect the presence of the 
spring-boot-starter-jettyas a first-order dependency and will add the maven propertyjakarta-servlet.versionsetting it's value to5.0.0. This will downgrade thejakarta-servletartifact if the pom's parent extends from the spring-boot-parent. 
jmockit
1 recipe
- Migrate from JMockit to Mockito - This recipe will apply changes commonly needed when migrating from JMockit to Mockito.
 
jms
5 recipes
- Migrate javax.jms to jakarta.jms on MDB - Migrate javax.jms to jakarta.jms on MDB
 - Migrate xmlns entries in 
*-jms.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
*-jms.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries in*-jms.xmlfiles to WebLogic 15.1.1 - Replace Spring Boot ActiveMQ with Quarkus Artemis JMS - Migrates 
spring-boot-starter-activemqtoquarkus-artemis-jms. - Replace Spring Boot Artemis with Quarkus Artemis JMS - Migrates 
spring-boot-starter-artemistoquarkus-artemis-jms. 
jobXML
1 recipe
- Migrate xmlns entries in 
**/batch-jobs/*.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
joda
1 recipe
- Prefer the Java standard library instead of Joda-Time - Before Java 8, Java lacked a robust date and time library, leading to the widespread use of Joda-Time to fill this gap. With the release of Java 8, the 
java.timepackage was introduced, incorporating most of Joda-Time's concepts. Features deemed too specialized or bulky forjava.timewere included in the ThreeTen-Extra library. This recipe migrates Joda-Time types tojava.timeandthreeten-extratypes. 
jpa
1 recipe
- Replace Spring Boot Data JPA with Quarkus Hibernate ORM Panache - Migrates 
spring-boot-starter-data-jpatoquarkus-hibernate-orm-panache. 
jsf
29 recipes
- Faces XHTML migration for Jakarta EE 10 - Find and replace legacy JSF namespace URIs with Jakarta Faces URNs in XHTML files.
 - Faces XHTML migration for Jakarta EE 9 - Find and replace legacy JSF namespaces and javax references with Jakarta Faces values in XHTML files.
 - Faces XHTML migration for Jakarta EE 9 - Find and replace javax references to jakarta in XHTML files.
 - JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older - Jakarta EE 8 uses Faces 2.3 a major upgrade to Jakarta packages and XML namespaces. This recipe will migrate JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older.
 - JSF 2.x to Jakarta Faces 3.x - Jakarta EE 9 uses Faces 3.0, a major upgrade to Jakarta packages and XML namespaces.
 - JSF 2.x to Jakarta Server Faces 3.x - Jakarta EE 9 uses Faces 3.0 a major upgrade to Jakarta packages and XML namespaces.
 - Jakarta Faces 4.0 to 4.1 - Jakarta EE 11 uses Faces 4.1 a minor upgrade.
 - Migrate JSF values inside EcmaScript files - Convert JSF to Faces values inside JavaScript,TypeScript, and Properties files.
 - Migrate xmlns entries in 
*taglib*.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
faces-config.xmlfiles - Jakarta EE 10 uses Faces version 4. - Migrate xmlns entries in 
faces-config.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
faces-config.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
taglib.xmlfiles - Faces 4 uses facelet-taglib 4.0. - Migrate xmlns entries in 
taglib.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
test-web.xmlfiles for Jakarta Server Faces 3 using test interfaces - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation for test interfaces like arquillian. - Migrate xmlns entries in 
web-fragment.xmlfiles - Faces 4 uses web-fragment 6.0. - Migrate xmlns entries in 
web-fragment.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web-fragment.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web.xmlfiles - Faces 4 uses web-app 6.0. - Migrate xmlns entries in 
web.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
web.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - OmniFaces Namespace Migration - Find and replace legacy OmniFaces namespaces.
 - Update Faces 
@ManagedBeanto use CDI@Named- Faces ManagedBean was deprecated in JSF 2.3 (EE8) and removed in Jakarta Faces 4.0 (EE10). Replace@ManagedBeanwith@Namedfor CDI-based bean management. - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade OmniFaces and MyFaces/Mojarra libraries to Jakarta EE11 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE10 versions.
 - Upgrade to Jakarta Faces 4.x - Jakarta EE 10 uses Faces 4.0.
 
jsp
1 recipe
- Migrate xmlns entries in 
*.tldfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
jsptaglibrary
1 recipe
- Migrate xmlns entries in 
*.tldfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
jsr250
1 recipe
- Add explicit Common Annotations dependencies - Add the necessary 
annotation-apidependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. 
JtaTransactionManager
1 recipe
- Replace Removed WebLogicJtaTransactionManager from Spring Framework 5.3.x to 6.2.x - Replace removed WebLogicJtaTransactionManager with JtaTransactionManager from Spring Framework 6.2.x.
 
junit
20 recipes
- Add 
org.hamcrest:hamcrestif it is used. - JUnit Jupiter does not include hamcrest as a transitive dependency. If needed, add a direct dependency. - Clean Up Assertions - Simplifies JUnit Jupiter assertions to their most-direct equivalents.
 - JUnit 5 best practices - Applies best practices to tests.
 - JUnit 6 best practices - Applies best practices to tests.
 - JUnit 6 migration from JUnit 5.x - Migrates JUnit 5.x tests to JUnit 6.x.
 - JUnit Jupiter best practices - Applies best practices to tests.
 - JUnit Jupiter migration from JUnit 4.x - Migrates JUnit 4.x tests to JUnit Jupiter.
 - Migrate Spring Boot 2.x projects to JUnit 5 from JUnit 4 - This recipe will migrate a Spring Boot application's tests from JUnit 4 to JUnit 5. This spring-specific migration includes conversion of Spring Test runners to Spring Test extensions and awareness of the composable Spring Test annotations.
 - Statically import JUnit Jupiter assertions - Always use a static import for assertion methods.
 - Upgrade to JUnit 5.14 - Upgrades JUnit 5 to 5.14.x and migrates all deprecated APIs.
 - Use Arquillian JUnit 5 Extension - Migrates Arquillian JUnit 4 to JUnit 5.
 - Use Byteman JUnit 5 dependency - Migrates Byteman JUnit 4 to JUnit 5.
 - Use JUnit Jupiter 
@Disabled- Migrates JUnit 4.x@Ignoreto JUnit Jupiter@Disabled. - Use JUnit Jupiter 
Executable- Migrates JUnit 4.xThrowingRunnableto JUnit JupiterExecutable. - Use Mockito JUnit Jupiter extension - Migrate uses of 
@RunWith(MockitoJUnitRunner.class)(and similar annotations) to@ExtendWith(MockitoExtension.class). - Use OkHttp 3 MockWebServer for JUnit 5 - Migrates OkHttp 3 
MockWebServerto enable JUnit Jupiter Extension support. - Use Vert.x JUnit 5 Extension - Migrates Vert.x 
@RunWithVertxUnitRunnerto the JUnit Jupiter@ExtendWithVertxExtension. - Use XMLUnit Legacy for JUnit 5 - Migrates XMLUnit 1.x to XMLUnit legacy 2.x.
 - Use 
Assertions#assume*(..)and Hamcrest'sMatcherAssume#assume*(..)- Many of JUnit 4'sAssume#assume(..)methods have no direct counterpart in JUnit 5 and require Hamcrest JUnit'sMatcherAssume. - Use 
MatcherAssert#assertThat(..)- JUnit 4'sAssert#assertThat(..)This method was deprecated in JUnit 4 and removed in JUnit Jupiter. 
jupiter
2 recipes
- JUnit 6 migration from JUnit 5.x - Migrates JUnit 5.x tests to JUnit 6.x.
 - Migrate Spring Boot 2.x projects to JUnit 5 from JUnit 4 - This recipe will migrate a Spring Boot application's tests from JUnit 4 to JUnit 5. This spring-specific migration includes conversion of Spring Test runners to Spring Test extensions and awareness of the composable Spring Test annotations.
 
kafka
20 recipes
- Migrate TaskMetadata and ThreadMetadata - Migrates TaskMetadata and ThreadMetadata from org.apache.kafka.streams.processor package to org.apache.kafka.streams package, and updates TaskMetadata.taskId() calls to include .toString() for String compatibility.
 - Migrate 
Joined.named()toJoined.as()- In Kafka Streams 2.3,Joined.named()was deprecated in favor ofJoined.as(). Additionally, thename()method was deprecated for removal and should not be used. - Migrate 
exactly_onceandexactly_once_betatoexactly_once_v2- Kafka Streams 2.6 introduces the exactly-once semantics v2, which is a more efficient implementation with improved internal handling. Starting from 3.0, it becomes the default "exactly_once_v2". - Migrate 
exactly_oncetoexactly_once_beta- Kafka Streams 2.6 introduces the exactly-once semantics v2, which is a more efficient implementation with improved internal handling. Though it is beta, it’s fully backward-compatible from the API standpoint, but internally it uses a different transaction/commit protocol. Starting from 3.0, it becomes the default "exactly_once_v2". - Migrate to Kafka 2.3 - Migrate applications to the latest Kafka 2.3 release.
 - Migrate to Kafka 2.4 - Migrate applications to the latest Kafka 2.4 release.
 - Migrate to Kafka 2.5 - Migrate applications to the latest Kafka 2.5 release.
 - Migrate to Kafka 2.6 - Migrate applications to the latest Kafka 2.6 release.
 - Migrate to Kafka 2.7 - Migrate applications to the latest Kafka 2.7 release.
 - Migrate to Kafka 2.8 - Migrate applications to the latest Kafka 2.8 release.
 - Migrate to Kafka 3.0 - Migrate applications to the latest Kafka 3.0 release.
 - Migrate to Kafka 3.1 - Migrate applications to the latest Kafka 3.1 release.
 - Migrate to Kafka 3.2 - Migrate applications to the latest Kafka 3.2 release.
 - Migrate to Kafka 3.3 - Migrate applications to the latest Kafka 3.3 release.
 - Migrate to Kafka 4.0 - Migrate applications to the latest Kafka 4.0 release. This includes updating dependencies to 4.0.x, ensuring Java 11+ for clients and Java 17+ for brokers/tools, and handling changes.
 - Migrate to Kafka 4.1 - Migrate applications to the latest Kafka 4.1 release. This includes updating dependencies to 4.1.x, migrating deprecated Admin API methods, updating Streams configuration properties, and removing deprecated broker properties.
 - Migrate to Spring Kafka 3.0 - Migrate applications to the latest Spring Kafka 3.0 release.
 - Migrate to Spring Kafka 3.3 - Migrate applications to the latest Spring Kafka 3.3 release.
 - Replace Spring Kafka with Quarkus Kafka Client - Migrates 
spring-kafkatoquarkus-kafka-clientwhen no reactor dependencies are present. - Replace Spring Kafka with Quarkus Messaging Kafka - Migrates 
spring-kafkatoquarkus-messaging-kafkawhen reactor dependencies are present. 
kubernetes
24 recipes
- Ensure CPU limits are set - A system without managed quotas could eventually collapse due to inadequate resources for the tasks it bares.
 - Ensure CPU request is set - If a container is created in a namespace that has a default CPU limit, and the container does not specify its own CPU limit, then the container is assigned the default CPU limit.
 - Ensure image pull policy is 
Always- Ensures the latest version of a tag is deployed each time. - Ensure lifecycle rule on 
StorageBucket- When defining a rule, you can specify any set of conditions for any action. The following configuration defines a rule to delete all objects older than 7 days in a bucket. - Ensure liveness probe is configured - The kubelet uses liveness probes to know when to schedule restarts for containers. Restarting a container in a deadlock state can help to make the application more available, despite bugs.
 - Ensure memory limits are set - With no limit set, kubectl allocates more and more memory to the container until it runs out.
 - Ensure memory request is set - A container is guaranteed to have as much memory as it requests, but is not allowed to use more memory than the limit set. This configuration may save resources and prevent an attack on an exploited container.
 - Ensure readiness probe is configured - Using the Readiness Probe ensures teams define what actions need to be taken to prevent failure and ensure recovery in case of unexpected errors.
 - Kubernetes best practices - Applies best practices to Kubernetes manifests.
 - Limit root capabilities in a container - Limiting the admission of containers with capabilities ensures that only a small number of containers have extended capabilities outside the default range.
 - Migrate to Kubernetes API v1.16 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.16.
 - Migrate to Kubernetes API v1.22 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.22.
 - Migrate to Kubernetes API v1.25 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.25.
 - Migrate to Kubernetes API v1.26 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.26.
 - Migrate to Kubernetes API v1.27 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.27.
 - Migrate to Kubernetes API v1.29 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.29.
 - Migrate to Kubernetes API v1.32 - This recipe will apply changes commonly needed when migrating to Kubernetes API v1.32.
 - No host IPC sharing - Preventing sharing of host PID/IPC namespace, networking, and ports ensures proper isolation between Docker containers and the underlying host.
 - No host network sharing - When using the host network mode for a container, that container’s network stack is not isolated from the Docker host, so the container shares the host’s networking namespace and does not get its own IP-address allocation.
 - No host process ID sharing - Sharing the host process ID namespace breaks the isolation between container images and can make processes visible to other containers in the pod. This includes all information in the /proc directory, which can sometimes include passwords or keys, passed as environment variables.
 - No privilege escalation - Does not allow a process to gain more privileges than its parent process.
 - No privileged containers - Privileged containers are containers that have all of the root capabilities of a host machine, allowing access to resources that are not accessible in ordinary containers.
 - No root containers - Containers that run as root frequently have more permissions than their workload requires which, in case of compromise, could help an attacker further their exploits.
 - Read-only root filesystem - Using an immutable root filesystem and a verified boot mechanism prevents against attackers from "owning" the machine through permanent local changes.
 
lang
1 recipe
- Migrates to Apache Commons Lang 3.x - Migrate applications to the latest Apache Commons Lang 3.x release. This recipe modifies application's build files, and changes the package as per the migration release notes.
 
LoadTimeWeaver
1 recipe
- Replace Removed WebLogicLoadTimeWeaver from Spring Framework 5.3.x to 6.2.x - Replace removed WebLogicLoadTimeWeaver with LoadTimeWeaver from Spring Framework 6.2.x.
 
local
1 recipe
- Replace 
LocalEventLoopGroupwithMultiThreadIoEventLoopGroup- Replacenew LocalEventLoopGroup()withnew MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory()). 
lodash
4 recipes
- Replace lodash and underscore array functions with native JavaScript - - 
_.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 - - 
_.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 - - 
_.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) - Replace lodash and underscore utility functions with native JavaScript - - 
_.isArray(x)->Array.isArray(x)-_.isBoolean(x)->typeof(x) === 'boolean'-_.isFinite(x)->Number.isFinite(x)-_.isFunction(x)->typeof(x) === 'function'-_.isNull(x)->x === null-_.isString(x)->typeof(x) === 'string'-_.isUndefined(x)->typeof(x) === 'undefined' 
log4j
10 recipes
- Migrate JCL to Log4j 2.x API - Transforms code written using Apache Commons Logging to use Log4j 2.x API.
 - Migrate JUL to Log4j 2.x API - Transforms code written using 
java.util.loggingto use Log4j 2.x API. - Migrate Log4j 1.x to Log4j 2.x - Migrates Log4j 1.x to Log4j 2.x.
 - Migrate Log4j 1.x to SLF4J 1.x - Transforms usages of Log4j 1.x to leveraging SLF4J 1.x directly. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate Log4j 2.x to Logback - Migrates usage of Apache Log4j 2.x to using 
logbackas an SLF4J implementation directly. Note, this currently does not modifylog4j.propertiesfiles. - Migrate Log4j 2.x to SLF4J 1.x - Transforms usages of Log4j 2.x to leveraging SLF4J 1.x directly. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate Log4j to SLF4J - Migrates usage of Apache Log4j to using SLF4J directly. Use of the traditional Log4j to SLF4J bridge can result in loss of performance, as the Log4j messages must be formatted before they can be passed to SLF4J. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate SLF4J to Log4j 2.x API - Transforms code written using SLF4J to use Log4j 2.x API.
 - Parameterize Log4j 2.x logging statements - Use Log4j 2.x parameterized logging, which can significantly boost performance for messages that otherwise would be assembled with String concatenation. Particularly impactful when the log level is not enabled, as no work is done to assemble the message.
 - Upgrade Log4j 2.x dependency version - Upgrades the Log4j 2.x dependencies to the latest 2.x version. Mitigates the Log4Shell and other Log4j2-related vulnerabilities.
 
log4shell
1 recipe
- Upgrade Log4j 2.x dependency version - Upgrades the Log4j 2.x dependencies to the latest 2.x version. Mitigates the Log4Shell and other Log4j2-related vulnerabilities.
 
logback
1 recipe
- Migrate Log4j 2.x to Logback - Migrates usage of Apache Log4j 2.x to using 
logbackas an SLF4J implementation directly. Note, this currently does not modifylog4j.propertiesfiles. 
logging
21 recipes
- Enhances logging of exceptions by including the full stack trace in addition to the exception message - It is a common mistake to call 
Exception.getMessage()when passing an exception into a log method. Not all exception types have useful messages, and even if the message is useful this omits the stack trace. Including a complete stack trace of the error along with the exception message in the log allows developers to better understand the context of the exception and identify the source of the error more quickly and accurately. If the method invocation includes any call toException.getMessage()orException.getLocalizedMessage()and not an exception is already passed as the last parameter to the log method, then we will append the exception as the last parameter in the log method. - JBoss Logging Best Practices - This recipe applies best practices for logging in JBoss applications. It includes converting argument arrays to varargs for better readability and performance.
 - Loggers should be named for their enclosing classes - Ensure 
LoggerFactory#getLogger(Class)is called with the enclosing class as argument. - Migrate Apache Commons Logging 1.x to SLF4J 1.x - Transforms usages of Apache Commons Logging 1.x to leveraging SLF4J 1.x directly.
 - Migrate JBoss Logging to SLF4J - Migrates usage of the JBoss Logging facade to using SLF4J.
 - Migrate JCL to Log4j 2.x API - Transforms code written using Apache Commons Logging to use Log4j 2.x API.
 - Migrate JUL to Log4j 2.x API - Transforms code written using 
java.util.loggingto use Log4j 2.x API. - Migrate JUL to SLF4J - Migrates usage of Java Util Logging (JUL) to using SLF4J directly.
 - Migrate Log4j 1.x to Log4j 2.x - Migrates Log4j 1.x to Log4j 2.x.
 - Migrate Log4j 1.x to SLF4J 1.x - Transforms usages of Log4j 1.x to leveraging SLF4J 1.x directly. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate Log4j 2.x to Logback - Migrates usage of Apache Log4j 2.x to using 
logbackas an SLF4J implementation directly. Note, this currently does not modifylog4j.propertiesfiles. - Migrate Log4j 2.x to SLF4J 1.x - Transforms usages of Log4j 2.x to leveraging SLF4J 1.x directly. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate Log4j to SLF4J - Migrates usage of Apache Log4j to using SLF4J directly. Use of the traditional Log4j to SLF4J bridge can result in loss of performance, as the Log4j messages must be formatted before they can be passed to SLF4J. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from 
cf-java-logging-support-servlettocf-java-logging-support-servlet-jakarta, to use Jakarta with Spring Boot 3. - Migrate SLF4J to Log4j 2.x API - Transforms code written using SLF4J to use Log4j 2.x API.
 - Parameterize Log4j 2.x logging statements - Use Log4j 2.x parameterized logging, which can significantly boost performance for messages that otherwise would be assembled with String concatenation. Particularly impactful when the log level is not enabled, as no work is done to assemble the message.
 - Parameterize SLF4J's logging statements - Use SLF4J's parameterized logging, which can significantly boost performance for messages that otherwise would be assembled with String concatenation. Particularly impactful when the log level is not enabled, as no work is done to assemble the message.
 - SLF4J best practices - Applies best practices to logging with SLF4J.
 - SLF4J logging statements should begin with constants - Logging statements shouldn't begin with 
String#format, calls totoString(), etc. - Upgrade Log4j 2.x dependency version - Upgrades the Log4j 2.x dependencies to the latest 2.x version. Mitigates the Log4Shell and other Log4j2-related vulnerabilities.
 - Use modernized 
java.util.loggingAPIs - Certain Java logging APIs have become deprecated and their usages changed, necessitating usage changes. 
lombok
6 recipes
- Convert 
@lombok.Valueclass to Record - Convert Lombok@Valueannotated classes to standard Java Records. - Convert getter methods to annotations - Convert trivial getter methods to 
@Getterannotations on their respective fields. - Convert setter methods to annotations - Convert trivial setter methods to 
@Setterannotations on their respective fields. - Migrate Lombok to a Java 11 compatible version - Update Lombok dependency to a version that is compatible with Java 11 and migrate experimental Lombok types that have been promoted.
 - Migrate Lombok's 
@__syntax toonX_for Java 8+ - Migrates Lombok'sonXannotations from the Java 7 style using@__to the Java 8+ style usingonX_. For example,@Getter(onMethod=@__({@Id}))becomes@Getter(onMethod_={@Id}). - Prefer 
final varoverlombok.val- Prefer the Java standard library'sfinal varandvarover third-party usage of Lombok'slombok.valandlombok.varin Java 10 or higher. 
mail
1 recipe
- Replace Spring Boot Mail with Quarkus Mailer - Migrates 
spring-boot-starter-mailtoquarkus-mailer. 
material
78 recipes
- Adds 
DefaultThememodule augmentation to typescript projects. - See Material UI codemod projects for more details. - Combination of all deprecations - See Material UI codemod projects for more details.
 - Converts ExpansionPanel to use ExpansionPanel component - See Material UI codemod projects for more details.
 - Converts GridList to use Grid component - See Material UI codemod projects for more details.
 - Converts JSS styles to styled-components - See Material UI codemod projects for more details.
 - Converts JSS to TypeScript in React components - See Material UI codemod projects for more details.
 - Converts 
rootReftoref- See Material UI codemod projects for more details. - Converts 
sxprop tosxstyle prop - See Material UI codemod projects for more details. - Converts all 
@mui/materialsubmodule imports to the root module - See Material UI codemod projects for more details. - Converts base imports to use React hooks - See Material UI codemod projects for more details.
 - Converts components to use the v4 adapter module - See Material UI codemod projects for more details.
 - Ensures presets are safe to use - See Material UI codemod projects for more details.
 - Moves date pickers to 
@mui/x-date-picker- See Material UI codemod projects for more details. - Moves lab modules to 
@mui/material- See Material UI codemod projects for more details. - Moves tree view to 
@mui/x-tree-view- See Material UI codemod projects for more details. - Optimizes imports - See Material UI codemod projects for more details.
 - Prepends emotion cache - See Material UI codemod projects for more details.
 - Remove system props and add them to the 
sxprop - See Material UI codemod projects for more details. - Removes 
Unstyledsuffix from base components - See Material UI codemod projects for more details. - Removes 
componentprop from base components - See Material UI codemod projects for more details. - Removes 
imgPropsprop from Avatar component - See Material UI codemod projects for more details. - Renames CSS properties for Box component - See Material UI codemod projects for more details.
 - Renames CSS variables - See Material UI codemod projects for more details.
 - Renames 
Muiclassname prefix - See Material UI codemod projects for more details. - Renames 
TextFieldtoInput- See Material UI codemod projects for more details. - Renames 
alphaprop toopacity- See Material UI codemod projects for more details. - Renames 
closeIconprop tocloseButtonIcon- See Material UI codemod projects for more details. - Renames 
collapsedHeightprop totransitionCollapsedHeight- See Material UI codemod projects for more details. - Renames 
colorprop tocolorOverride- See Material UI codemod projects for more details. - Renames 
componentprop toas- See Material UI codemod projects for more details. - Renames 
gapprop tospacing- See Material UI codemod projects for more details. - Renames 
optionprop togetOptionLabel- See Material UI codemod projects for more details. - Renames 
rowprop toflexDirection="row"- See Material UI codemod projects for more details. - Renames base components to slots - See Material UI codemod projects for more details.
 - Renames components to slots - See Material UI codemod projects for more details.
 - Replaces 
@muiimports with@mui/material- See Material UI codemod projects for more details. - Update the theme creation from 
@mui/system@v5to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Update the usage of the 
sxprop to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Updates 
borderRadiusprop values - See Material UI codemod projects for more details. - Updates 
circleprop tovariant="circular"- See Material UI codemod projects for more details. - Updates 
circularprop tovariant="circular"- See Material UI codemod projects for more details. - Updates 
downprop for Hidden component - See Material UI codemod projects for more details. - Updates 
justifyprop tojustifyContentfor Grid component - See Material UI codemod projects for more details. - Updates 
minRowsandmaxRowsprops for TextareaAutosize component - See Material UI codemod projects for more details. - Updates 
overlapprop tovariant="dot"- See Material UI codemod projects for more details. - Updates 
roundvalues for theme typography - See Material UI codemod projects for more details. - Updates 
sizeprop for IconButton component - See Material UI codemod projects for more details. - Updates 
variantprop for Chip component - See Material UI codemod projects for more details. - Updates 
variantprop for CircularProgress component - See Material UI codemod projects for more details. - Updates 
variantprop for Fab component - See Material UI codemod projects for more details. - Updates 
variantprop for Skeleton component - See Material UI codemod projects for more details. - Updates 
variantprop usage - See Material UI codemod projects for more details. - Updates 
widthvalues for theme breakpoints - See Material UI codemod projects for more details. - Updates base imports to use named exports - See Material UI codemod projects for more details.
 - Updates createMuiTheme usage - See Material UI codemod projects for more details.
 - Updates import paths for core styles - See Material UI codemod projects for more details.
 - Updates link underline on hover - See Material UI codemod projects for more details.
 - Updates props for Dialog component - See Material UI codemod projects for more details.
 - Updates props for DialogTitle component - See Material UI codemod projects for more details.
 - Updates props for Modal component - See Material UI codemod projects for more details.
 - Updates props for Table component - See Material UI codemod projects for more details.
 - Updates scroll buttons for Tabs component - See Material UI codemod projects for more details.
 - Updates the usage of 
styledfrom@mui/system@v5to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Updates the usage of the 
@mui/material/Grid2,@mui/system/Grid, and@mui/joy/Gridcomponents to their updated APIs. - See Material UI codemod projects for more details. - Updates theme breakpoints - See Material UI codemod projects for more details.
 - Updates theme options - See Material UI codemod projects for more details.
 - Updates theme palette mode - See Material UI codemod projects for more details.
 - Updates theme spacing - See Material UI codemod projects for more details.
 - Updates theme spacing API - See Material UI codemod projects for more details.
 - Updates usage of ThemeProvider - See Material UI codemod projects for more details.
 - Updates usage of 
@mui/styles- See Material UI codemod projects for more details. - Updates usage of 
@mui/types- See Material UI codemod projects for more details. - Updates usage of styled engine provider - See Material UI codemod projects for more details.
 - Updates usage of transitions - See Material UI codemod projects for more details.
 - Updates usage of useAutocomplete - See Material UI codemod projects for more details.
 - Updates usage of useTransitionProps - See Material UI codemod projects for more details.
 - Updates withMobileDialog higher-order component - See Material UI codemod projects for more details.
 - Updates withWidth higher-order component - See Material UI codemod projects for more details.
 
math
1 recipe
- Migrates to Apache Commons Math 3.x - Migrate applications to the latest Apache Commons Math 3.x release. This recipe modifies application's build files, make changes to deprecated/preferred APIs, and migrates configuration settings that have changes between versions.
 
maven
1 recipe
- Add or replace Spring Boot build plugin with Quarkus build plugin - Remove Spring Boot Maven plugin if present and add Quarkus Maven plugin using the same version as the quarkus-bom.
 
messaging
2 recipes
- Replace Spring Boot AMQP with Quarkus Messaging AMQP - Migrates 
spring-boot-starter-amqptoquarkus-messaging-amqpwhen reactor dependencies are present. - Replace Spring Kafka with Quarkus Messaging Kafka - Migrates 
spring-kafkatoquarkus-messaging-kafkawhen reactor dependencies are present. 
micrometer
3 recipes
- Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0 - Spring Cloud Sleuth has been discontinued and only compatible with Spring Boot 2.x.
 - Migrate to Micrometer 1.13 - Migrate applications to the latest Micrometer 1.13 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions as described in the Micrometer 1.13 migration guide.
 - Simplify Micrometer meter tags - Use the simplest method to add new tags.
 
migration
16 recipes
- Add or replace Spring Boot build plugin with Quarkus build plugin - Remove Spring Boot Maven plugin if present and add Quarkus Maven plugin using the same version as the quarkus-bom.
 - Change numeric field types for Elasticsearch 9 - Handles changes between different numeric types (
LongtoInteger,inttoLong...) in Elasticsearch 9 API responses by adding appropriate conversion methods with null checks. - Migrate DenseVectorProperty.elementType from String to DenseVectorElementType enum - In Elasticsearch 9, 
DenseVectorProperty.elementType()returnsDenseVectorElementTypeenum instead ofString, and the builder methodelementType(String)now accepts the enum type. This recipe handles both builder calls and getter calls. - Migrate DenseVectorProperty.similarity from String to DenseVectorSimilarity enum - In Elasticsearch 9, 
DenseVectorProperty.similarity()returnsDenseVectorSimilarityenum instead ofString, and the builder methodsimilarity(String)now accepts the enum type. This recipe handles both builder calls and getter calls. - Migrate Oracle SQL to PostgreSQL - Converts Oracle-specific SQL syntax and functions to PostgreSQL equivalents.
 - Migrate SQL Server to PostgreSQL - Converts Microsoft SQL Server-specific SQL syntax and functions to PostgreSQL equivalents.
 - Migrate Spring Boot to Quarkus - Replace Spring Boot with Quarkus.
 - Migrate 
@EnableXyzannotations to Quarkus extensions - Removes Spring@EnableXyzannotations and adds the corresponding Quarkus extensions as dependencies. - Migrate 
SpanTermQuery.value()from String to FieldValue - In Elasticsearch 9,SpanTermQuery.value()returns aFieldValueinstead ofString. This recipe updates calls to handle the new return type by checking if it's a string and extracting the string value. - Migrate 
matchedQueriesfrom List to Map - In Elasticsearch Java Client 9.0,Hit.matchedQueries()changed from returningList<String>toMap<String, Double>. This recipe migrates the usage by adding.keySet()for iterations and usingnew ArrayList<>(result.keySet())for assignments. - Migrate from Elasticsearch 8 to 9 - This recipe performs a comprehensive migration from Elasticsearch 8 to Elasticsearch 9, addressing breaking changes, API removals, deprecations, and required code modifications.
 - Migrate from JavaX to Jakarta EE 9.1 Namespaces - These recipes help with Migration From JavaX to Jakarta EE 9.1 Namespaces.
 - Migrate to Jakarta EE 9.1 - These recipes help with Migration to Jakarta EE 9.1, flagging and updating deprecated methods.
 - Rename API fields for Elasticsearch 9 - Renames various API response fields from 
valueBodyto align with Elasticsearch 9 specifications. - Rename 
Elasticsearch valueBody()methods - In Elasticsearch Java Client 9.0, the genericvalueBody()method andvalueBody(...)builder methods have been replaced with specific getter and setter methods that better reflect the type of data being returned. Similarly, forGetRepositoryResponse, theresultfield also got altered torepositories. - Replace Spring Boot starter dependencies with Quarkus equivalents - Migrates Spring Boot starter dependencies to their Quarkus equivalents, removing version tags as Quarkus manages versions through its BOM.
 
mockito
7 recipes
- Mockito 3.x migration from 1.x - Upgrade Mockito from 1.x to 3.x.
 - Mockito 4 to 5.x upgrade only - Upgrade Mockito from 4.x to 5.x. Does not include 1.x to 4.x migration.
 - Mockito 4.x upgrade - Upgrade Mockito from 1.x to 4.x.
 - Mockito 5.x upgrade - Upgrade Mockito from 1.x to 5.x.
 - Mockito best practices - Applies best practices for Mockito tests.
 - Replace PowerMock with raw Mockito - PowerMockito with raw Mockito; best executed as part of a Mockito upgrade.
 - Use Mockito JUnit Jupiter extension - Migrate uses of 
@RunWith(MockitoJUnitRunner.class)(and similar annotations) to@ExtendWith(MockitoExtension.class). 
mongodb
1 recipe
- Replace Spring Boot Data MongoDB with Quarkus MongoDB Panache - Migrates 
spring-boot-starter-data-mongodbtoquarkus-mongodb-panache. 
mssql
3 recipes
- Convert SQL Server data types to PostgreSQL - Replaces SQL Server-specific data types with PostgreSQL equivalents.
 - Convert SQL Server functions to PostgreSQL - Replaces SQL Server-specific functions with PostgreSQL equivalents.
 - Migrate SQL Server to PostgreSQL - Converts Microsoft SQL Server-specific SQL syntax and functions to PostgreSQL equivalents.
 
mui
78 recipes
- Adds 
DefaultThememodule augmentation to typescript projects. - See Material UI codemod projects for more details. - Combination of all deprecations - See Material UI codemod projects for more details.
 - Converts ExpansionPanel to use ExpansionPanel component - See Material UI codemod projects for more details.
 - Converts GridList to use Grid component - See Material UI codemod projects for more details.
 - Converts JSS styles to styled-components - See Material UI codemod projects for more details.
 - Converts JSS to TypeScript in React components - See Material UI codemod projects for more details.
 - Converts 
rootReftoref- See Material UI codemod projects for more details. - Converts 
sxprop tosxstyle prop - See Material UI codemod projects for more details. - Converts all 
@mui/materialsubmodule imports to the root module - See Material UI codemod projects for more details. - Converts base imports to use React hooks - See Material UI codemod projects for more details.
 - Converts components to use the v4 adapter module - See Material UI codemod projects for more details.
 - Ensures presets are safe to use - See Material UI codemod projects for more details.
 - Moves date pickers to 
@mui/x-date-picker- See Material UI codemod projects for more details. - Moves lab modules to 
@mui/material- See Material UI codemod projects for more details. - Moves tree view to 
@mui/x-tree-view- See Material UI codemod projects for more details. - Optimizes imports - See Material UI codemod projects for more details.
 - Prepends emotion cache - See Material UI codemod projects for more details.
 - Remove system props and add them to the 
sxprop - See Material UI codemod projects for more details. - Removes 
Unstyledsuffix from base components - See Material UI codemod projects for more details. - Removes 
componentprop from base components - See Material UI codemod projects for more details. - Removes 
imgPropsprop from Avatar component - See Material UI codemod projects for more details. - Renames CSS properties for Box component - See Material UI codemod projects for more details.
 - Renames CSS variables - See Material UI codemod projects for more details.
 - Renames 
Muiclassname prefix - See Material UI codemod projects for more details. - Renames 
TextFieldtoInput- See Material UI codemod projects for more details. - Renames 
alphaprop toopacity- See Material UI codemod projects for more details. - Renames 
closeIconprop tocloseButtonIcon- See Material UI codemod projects for more details. - Renames 
collapsedHeightprop totransitionCollapsedHeight- See Material UI codemod projects for more details. - Renames 
colorprop tocolorOverride- See Material UI codemod projects for more details. - Renames 
componentprop toas- See Material UI codemod projects for more details. - Renames 
gapprop tospacing- See Material UI codemod projects for more details. - Renames 
optionprop togetOptionLabel- See Material UI codemod projects for more details. - Renames 
rowprop toflexDirection="row"- See Material UI codemod projects for more details. - Renames base components to slots - See Material UI codemod projects for more details.
 - Renames components to slots - See Material UI codemod projects for more details.
 - Replaces 
@muiimports with@mui/material- See Material UI codemod projects for more details. - Update the theme creation from 
@mui/system@v5to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Update the usage of the 
sxprop to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Updates 
borderRadiusprop values - See Material UI codemod projects for more details. - Updates 
circleprop tovariant="circular"- See Material UI codemod projects for more details. - Updates 
circularprop tovariant="circular"- See Material UI codemod projects for more details. - Updates 
downprop for Hidden component - See Material UI codemod projects for more details. - Updates 
justifyprop tojustifyContentfor Grid component - See Material UI codemod projects for more details. - Updates 
minRowsandmaxRowsprops for TextareaAutosize component - See Material UI codemod projects for more details. - Updates 
overlapprop tovariant="dot"- See Material UI codemod projects for more details. - Updates 
roundvalues for theme typography - See Material UI codemod projects for more details. - Updates 
sizeprop for IconButton component - See Material UI codemod projects for more details. - Updates 
variantprop for Chip component - See Material UI codemod projects for more details. - Updates 
variantprop for CircularProgress component - See Material UI codemod projects for more details. - Updates 
variantprop for Fab component - See Material UI codemod projects for more details. - Updates 
variantprop for Skeleton component - See Material UI codemod projects for more details. - Updates 
variantprop usage - See Material UI codemod projects for more details. - Updates 
widthvalues for theme breakpoints - See Material UI codemod projects for more details. - Updates base imports to use named exports - See Material UI codemod projects for more details.
 - Updates createMuiTheme usage - See Material UI codemod projects for more details.
 - Updates import paths for core styles - See Material UI codemod projects for more details.
 - Updates link underline on hover - See Material UI codemod projects for more details.
 - Updates props for Dialog component - See Material UI codemod projects for more details.
 - Updates props for DialogTitle component - See Material UI codemod projects for more details.
 - Updates props for Modal component - See Material UI codemod projects for more details.
 - Updates props for Table component - See Material UI codemod projects for more details.
 - Updates scroll buttons for Tabs component - See Material UI codemod projects for more details.
 - Updates the usage of 
styledfrom@mui/system@v5to be compatible with@pigment-css/react- See Material UI codemod projects for more details. - Updates the usage of the 
@mui/material/Grid2,@mui/system/Grid, and@mui/joy/Gridcomponents to their updated APIs. - See Material UI codemod projects for more details. - Updates theme breakpoints - See Material UI codemod projects for more details.
 - Updates theme options - See Material UI codemod projects for more details.
 - Updates theme palette mode - See Material UI codemod projects for more details.
 - Updates theme spacing - See Material UI codemod projects for more details.
 - Updates theme spacing API - See Material UI codemod projects for more details.
 - Updates usage of ThemeProvider - See Material UI codemod projects for more details.
 - Updates usage of 
@mui/styles- See Material UI codemod projects for more details. - Updates usage of 
@mui/types- See Material UI codemod projects for more details. - Updates usage of styled engine provider - See Material UI codemod projects for more details.
 - Updates usage of transitions - See Material UI codemod projects for more details.
 - Updates usage of useAutocomplete - See Material UI codemod projects for more details.
 - Updates usage of useTransitionProps - See Material UI codemod projects for more details.
 - Updates withMobileDialog higher-order component - See Material UI codemod projects for more details.
 - Updates withWidth higher-order component - See Material UI codemod projects for more details.
 
mvc
1 recipe
- Migrate javax.mvc to 2.0 (Jakarta EE 9) - Upgrade Jakarta Model-View-Controller libraries to 2.0 (Jakarta EE9) versions.
 
myfaces
5 recipes
- Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade OmniFaces and MyFaces/Mojarra libraries to Jakarta EE11 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE10 versions.
 
mysql
1 recipe
- Add missing Flyway module for MySQL - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the 
flyway-mysqldependency if you are using MySQL with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. 
namespaces
1 recipe
- Migrate from JavaX to Jakarta EE 9.1 Namespaces - These recipes help with Migration From JavaX to Jakarta EE 9.1 Namespaces.
 
netty
5 recipes
- Migrates from Netty 4.1.x to Netty 4.2.x - Migrate applications to the latest Netty 4.2.x release.
 - Replace 
EpollEventLoopGroupwithMultiThreadIoEventLoopGroup- Replacenew EpollEventLoopGroup()withnew MultiThreadIoEventLoopGroup(EpollIoHandler.newFactory()). - Replace 
LocalEventLoopGroupwithMultiThreadIoEventLoopGroup- Replacenew LocalEventLoopGroup()withnew MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory()). - Replace 
NioEventLoopGroupwithMultiThreadIoEventLoopGroup- Replacenew NioEventLoopGroup()withnew MultiThreadIoEventLoopGroup(NioIoHandler.newFactory()). - Replace all 
EventLoopGroups withMultiThreadIoEventLoopGroup- Replaces Netty'snew *EventLoopGroupwithnew MultiThreadIoEventLoopGroup(*IoHandler.newFactory()). 
networking
1 recipe
- Use modernized 
java.netAPIs - Certain Java networking APIs have become deprecated and their usages changed, necessitating usage changes. 
nextjs
12 recipes
- Add React imports - Transforms files that do not import 
Reactto include the import in order for the new React JSX transform to work. - Migrate 
ImageResponseimports - This codemod moves transforms imports fromnext/servertonext/ogfor usage of Dynamic OG Image Generation. - Migrate to the New Image Component - Dangerously migrates from 
next/legacy/imageto the newnext/imageby adding inline styles and removing unused props. - Next.js Codemods for API Updates - Next.js provides Codemod transformations to help upgrade your Next.js codebase when an API is updated or deprecated.
 - Remove 
<a>Tags From Link Components - Remove&lt;a&gt;tags inside Link Components or add alegacyBehaviorprop to Links that cannot be auto-fixed. - Rename Next Image Imports - Safely renames 
next/imageimports in existing Next.js1011or12applications tonext/legacy/imagein Next.js 13. Also renamesnext/future/imagetonext/image. - Rename Next Image Imports - Safely renames 
next/imageimports in existing Next.js1011or12applications tonext/legacy/imagein Next.js 13. Also renamesnext/future/imagetonext/image. - Transform AMP HOC into page config - Transforms the 
withAmpHOC into Next.js 9 page configuration. - Transform Anonymous Components into Named Components - Transforms anonymous components into named components to make sure they work with Fast Refresh. The component will have a camel-cased name based on the name of the file, and it also works with arrow functions.
 - Use Built-in Font - This codemod uninstalls the 
@next/fontpackage and transforms@next/fontimports into the built-innext/font. - Use 
viewportexport - This codemod migrates certain viewport metadata toviewportexport. - Use 
withRouter- Transforms the deprecated automatically injected url property on top-level pages to usingwithRouterand therouterproperty it injects. Read more here. 
nio
1 recipe
- Replace 
NioEventLoopGroupwithMultiThreadIoEventLoopGroup- Replacenew NioEventLoopGroup()withnew MultiThreadIoEventLoopGroup(NioIoHandler.newFactory()). 
nodejs
1 recipe
- Upgrade 
actions/setup-nodenode-version- Update the Node.js version used byactions/setup-nodeif it is below the expected version number. 
non
1 recipe
- Mitigate Unaffected Non-EE Jakarta 9 Packages - Mitigate Unaffected Non-EE Jakarta 9 Packages. Reference: https://github.com/jakartaee/platform/blob/main/namespace/unaffected-packages.adoc
 
oauth2
2 recipes
- Replace Spring Boot OAuth2 Client with Quarkus OIDC Client - Migrates spring-boot-starter-oauth2-client
toquarkus-oidc-client`. - Replace Spring Boot OAuth2 Resource Server with Quarkus OIDC - Migrates 
spring-boot-starter-oauth2-resource-servertoquarkus-oidc. 
observability
1 recipe
- Update OpenTelemetry resource attributes - The 
service.groupresource attribute has been deprecated for OpenTelemetry in Spring Boot 3.5. Consider using alternative attributes or remove the deprecated attribute. 
okhttp
1 recipe
- Use OkHttp 3 MockWebServer for JUnit 5 - Migrates OkHttp 3 
MockWebServerto enable JUnit Jupiter Extension support. 
omnifaces
6 recipes
- OmniFaces Namespace Migration - Find and replace legacy OmniFaces namespaces.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade OmniFaces and MyFaces/Mojarra libraries to Jakarta EE11 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE10 versions.
 
openapi
10 recipes
- Migrate from SpringFox Swagger to SpringDoc and OpenAPI - Migrate from SpringFox Swagger to SpringDoc and OpenAPI.
 - Migrate from Swagger to OpenAPI - Migrate from Swagger to OpenAPI.
 - Migrate from Swagger to SpringDoc and OpenAPI - Migrate from Swagger to SpringDoc and OpenAPI.
 - Migrate from 
@ApiImplicitParamsto@Parameters- Converts@ApiImplicitParamsto@Parametersand the@ApiImplicitParamannotation to@Parameterand converts the directly mappable attributes and removes the others. - Migrate from 
@ApiModelPropertyto@Schema- Converts the@ApiModelPropertyannotation to@Schemaand converts the "value" attribute to "description". - Migrate from 
@ApiOperationto@Operation- Converts the@ApiOperationannotation to@Operationand converts the directly mappable attributes and removes the others. - Migrate from 
@ApiParamto@Parameter- Converts the@ApiParamannotation to@Parameterand converts the directly mappable attributes. - Migrate from 
@ApiResponsesto@ApiResponses- Changes the namespace of the@ApiResponsesand@ApiResponseannotations and converts its attributes (ex. code -> responseCode, message -> description, response -> content). - Migrate from springdoc-openapi-common to springdoc-openapi-starter-common - Migrate from springdoc-openapi-common to springdoc-openapi-starter-common.
 - Use Jakarta Swagger Artifacts - Migrate from javax Swagger artifacts to Jakarta versions.
 
opentelemetry
1 recipe
- Update OpenTelemetry resource attributes - The 
service.groupresource attribute has been deprecated for OpenTelemetry in Spring Boot 3.5. Consider using alternative attributes or remove the deprecated attribute. 
oracle
4 recipes
- Add missing Flyway module for Oracle - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the 
flyway-database-oracledependency if you are using Oracle with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Convert Oracle data types to PostgreSQL - Replaces Oracle-specific data types with PostgreSQL equivalents.
 - Convert Oracle functions to PostgreSQL - Replaces Oracle-specific functions with PostgreSQL equivalents.
 - Migrate Oracle SQL to PostgreSQL - Converts Oracle-specific SQL syntax and functions to PostgreSQL equivalents.
 
orm
2 recipes
- Add Hibernate ORM Core if has dependencies - This recipe will add Hibernate ORM Core if has dependencies.
 - Migrate xmlns entries in 
orm.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
oss
1 recipe
- Add ASLv2 license header - Adds the Apache Software License Version 2.0 to Java source files which are missing a license header.
 
permissions
1 recipe
- Migrate xmlns entries in 
permissions.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
persistence
5 recipes
- Migrate xmlns entries in 
orm.xmlfiles - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 Persistence Configuration schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inpersistence-configuration.xmlfiles to WebLogic 15.1.1 - Update Jakarta Persistence to 3.1 - Update Jakarta Persistence to 3.1.
 - Update Jakarta Persistence to 3.2 - Update Jakarta Persistence to 3.2.
 
petclinic
2 recipes
- Add WebLogic 15.1.1 PetClinic extras - Run migration extras for migrated Spring Framework PetClinic example run on WebLogic 15.1.1.
 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2.
 
plain text
1 recipe
- Change text - Completely replaces the contents of the text file with other text. Use together with a 
FindSourceFilesprecondition to limit which files are changed. 
poi
1 recipe
- Migrates to Apache POI 3.17 - Migrates to the last Apache POI 3.x release. This recipe modifies build files and makes changes to deprecated/preferred APIs that have changed between versions.
 
postgresql
7 recipes
- Add missing Flyway module for PostgreSQL - Database modules for Flyway 10 have been split out in to separate modules for maintainability. Add the 
flyway-database-postgresqldependency if you are using PostgreSQL with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Convert Oracle data types to PostgreSQL - Replaces Oracle-specific data types with PostgreSQL equivalents.
 - Convert Oracle functions to PostgreSQL - Replaces Oracle-specific functions with PostgreSQL equivalents.
 - Convert SQL Server data types to PostgreSQL - Replaces SQL Server-specific data types with PostgreSQL equivalents.
 - Convert SQL Server functions to PostgreSQL - Replaces SQL Server-specific functions with PostgreSQL equivalents.
 - Migrate Oracle SQL to PostgreSQL - Converts Oracle-specific SQL syntax and functions to PostgreSQL equivalents.
 - Migrate SQL Server to PostgreSQL - Converts Microsoft SQL Server-specific SQL syntax and functions to PostgreSQL equivalents.
 
primefaces
4 recipes
- Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE9 versions.
 - Upgrade Faces open source libraries - Upgrade PrimeFaces, OmniFaces, and MyFaces libraries to Jakarta EE10 versions.
 
pubsub
2 recipes
- Migrate xmlns entries in 
weblogic-pubsub.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic PubSub schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-pubsub.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-pubsub.xmlfiles to WebLogic 15.1.1 
quarkus
38 recipes
- Add Spring compatibility extensions for commonly used annotations - Adds Quarkus Spring compatibility extensions when Spring annotations are detected in the codebase.
 - Add or replace Spring Boot build plugin with Quarkus build plugin - Remove Spring Boot Maven plugin if present and add Quarkus Maven plugin using the same version as the quarkus-bom.
 - Migrate Spring Boot to Quarkus - Replace Spring Boot with Quarkus.
 - Migrate 
@EnableXyzannotations to Quarkus extensions - Removes Spring@EnableXyzannotations and adds the corresponding Quarkus extensions as dependencies. - Migrate database drivers to Quarkus JDBC extensions - Replaces Spring Boot database driver dependencies with their Quarkus JDBC extension equivalents.
 - Replace Derby driver with Quarkus JDBC Derby - Migrates 
org.apache.derby:derbyorderbyclienttoio.quarkus:quarkus-jdbc-derby(excludes test scope) - Replace Derby test driver with Quarkus JDBC Derby (test scope) - Migrates 
org.apache.derby:derbywith test scope toio.quarkus:quarkus-jdbc-derbywith test scope - Replace H2 driver with Quarkus JDBC H2 - Migrates 
com.h2database:h2toio.quarkus:quarkus-jdbc-h2(excludes test scope) - Replace H2 test driver with Quarkus JDBC H2 (test scope) - Migrates 
com.h2database:h2with test scope toio.quarkus:quarkus-jdbc-h2with test scope - Replace Spring Boot AMQP with Quarkus Messaging AMQP - Migrates 
spring-boot-starter-amqptoquarkus-messaging-amqpwhen reactor dependencies are present. - Replace Spring Boot AMQP with Quarkus Messaging RabbitMQ - Migrates 
spring-boot-starter-amqptoquarkus-messaging-rabbitmqwhen no reactor dependencies are present. - Replace Spring Boot ActiveMQ with Quarkus Artemis JMS - Migrates 
spring-boot-starter-activemqtoquarkus-artemis-jms. - Replace Spring Boot Actuator with Quarkus SmallRye Health - Migrates 
spring-boot-starter-actuatortoquarkus-smallrye-health. - Replace Spring Boot Artemis with Quarkus Artemis JMS - Migrates 
spring-boot-starter-artemistoquarkus-artemis-jms. - Replace Spring Boot Batch with Quarkus Scheduler - Migrates 
spring-boot-starter-batchtoquarkus-scheduler. - Replace Spring Boot Cache with Quarkus Cache - Migrates 
spring-boot-starter-cachetoquarkus-cache. - Replace Spring Boot Data JPA with Quarkus Hibernate ORM Panache - Migrates 
spring-boot-starter-data-jpatoquarkus-hibernate-orm-panache. - Replace Spring Boot Data MongoDB with Quarkus MongoDB Panache - Migrates 
spring-boot-starter-data-mongodbtoquarkus-mongodb-panache. - Replace Spring Boot Data REST with Quarkus REST - Migrates 
spring-boot-starter-data-resttoquarkus-rest-jackson. - Replace Spring Boot Data Redis with Quarkus Redis Client - Migrates 
spring-boot-starter-data-redistoquarkus-redis-client. - Replace Spring Boot Elasticsearch with Quarkus Elasticsearch REST Client - Migrates 
spring-boot-starter-data-elasticsearchtoquarkus-elasticsearch-rest-client. - Replace Spring Boot Integration with Camel Quarkus - Migrates 
spring-boot-starter-integrationtocamel-quarkus-core. - Replace Spring Boot JDBC with Quarkus Agroal - Migrates 
spring-boot-starter-jdbctoquarkus-agroal. - Replace Spring Boot Mail with Quarkus Mailer - Migrates 
spring-boot-starter-mailtoquarkus-mailer. - Replace Spring Boot OAuth2 Client with Quarkus OIDC Client - Migrates spring-boot-starter-oauth2-client
toquarkus-oidc-client`. - Replace Spring Boot OAuth2 Resource Server with Quarkus OIDC - Migrates 
spring-boot-starter-oauth2-resource-servertoquarkus-oidc. - Replace Spring Boot Quartz with Quarkus Quartz - Migrates 
spring-boot-starter-quartztoquarkus-quartz. - Replace Spring Boot Security with Quarkus Security - Migrates 
spring-boot-starter-securitytoquarkus-security. - Replace Spring Boot Test with Quarkus JUnit 5 - Migrates 
spring-boot-starter-testtoquarkus-junit5. - Replace Spring Boot Thymeleaf with Quarkus Qute - Migrates 
spring-boot-starter-thymeleaftoquarkus-qute. - Replace Spring Boot Validation with Quarkus Hibernate Validator - Migrates 
spring-boot-starter-validationtoquarkus-hibernate-validator. - Replace Spring Boot Web with Quarkus REST - Migrates 
spring-boot-starter-webtoquarkus-rest-jacksonwhen reactor dependencies are present. - Replace Spring Boot Web with Quarkus RESTEasy Classic - Migrates 
spring-boot-starter-webtoquarkus-resteasy-jacksonwhen no reactor dependencies are present. - Replace Spring Boot WebFlux with Quarkus REST Client - Migrates 
spring-boot-starter-webfluxtoquarkus-rest-client-jacksonwhen reactor dependencies are present. - Replace Spring Boot WebSocket with Quarkus WebSockets - Migrates 
spring-boot-starter-websockettoquarkus-websockets. - Replace Spring Boot starter dependencies with Quarkus equivalents - Migrates Spring Boot starter dependencies to their Quarkus equivalents, removing version tags as Quarkus manages versions through its BOM.
 - Replace Spring Kafka with Quarkus Kafka Client - Migrates 
spring-kafkatoquarkus-kafka-clientwhen no reactor dependencies are present. - Replace Spring Kafka with Quarkus Messaging Kafka - Migrates 
spring-kafkatoquarkus-messaging-kafkawhen reactor dependencies are present. 
quartz
1 recipe
- Replace Spring Boot Quartz with Quarkus Quartz - Migrates 
spring-boot-starter-quartztoquarkus-quartz. 
ra
3 recipes
- Migrate xmlns entries in 
ra.xmlfiles (Connectors). - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Adapter schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ra.xmlfiles to WebLogic 15.1.1 
rabbitmq
1 recipe
- Replace Spring Boot AMQP with Quarkus Messaging RabbitMQ - Migrates 
spring-boot-starter-amqptoquarkus-messaging-rabbitmqwhen no reactor dependencies are present. 
rdbms
2 recipes
- Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 RDBMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-rdbms-jar.xmlfiles to WebLogic 15.1.1 
reactive
4 recipes
- Replace Spring Boot AMQP with Quarkus Messaging AMQP - Migrates 
spring-boot-starter-amqptoquarkus-messaging-amqpwhen reactor dependencies are present. - Replace Spring Boot Web with Quarkus REST - Migrates 
spring-boot-starter-webtoquarkus-rest-jacksonwhen reactor dependencies are present. - Replace Spring Boot WebFlux with Quarkus REST Client - Migrates 
spring-boot-starter-webfluxtoquarkus-rest-client-jacksonwhen reactor dependencies are present. - Replace Spring Kafka with Quarkus Messaging Kafka - Migrates 
spring-kafkatoquarkus-messaging-kafkawhen reactor dependencies are present. 
reactor
2 recipes
- Migrate to Reactor 3.5 - Adopt to breaking changes in Reactor 3.5.
 - Reactor Best Practices - This recipe applies best practices for using Reactor.
 
redis
1 recipe
- Replace Spring Boot Data Redis with Quarkus Redis Client - Migrates 
spring-boot-starter-data-redistoquarkus-redis-client. 
refactoring
1 recipe
- Use local variable type inference - 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. 
resource
2 recipes
- Migrate xmlns entries in 
resource-deployment-plan.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Deployment Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
resource-deployment-plan.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inresource-deployment-plan.xmlfiles to WebLogic 15.1.1 
rest
1 recipe
- Replace Spring Boot Data REST with Quarkus REST - Migrates 
spring-boot-starter-data-resttoquarkus-rest-jackson. 
RSPEC
173 recipes
- 'Collection.toArray()' should be passed an array of the proper type - Using 
Collection.toArray()without parameters returns anObject[], which requires casting. It is more efficient and clearer to useCollection.toArray(new T[0])instead. - Add 
serialVersionUIDto aSerializableclass when missing - AserialVersionUIDfield is strongly recommended in allSerializableclasses. If this is not defined on aSerializableclass, 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. - Add missing 
@Overrideto overriding and implementing methods - Adds@Overrideto methods overriding superclass methods or implementing interface methods. Annotating methods improves readability by showing the author's intent to override. Additionally, when annotated, the compiler will emit an error when a signature of the overridden method does not match the superclass method. - Assertion arguments should be passed in the correct order - Assertions such as 
org.junit.Assert.assertEqualsexpect the first argument to be the expected value and the second argument to be the actual value; fororg.testng.Assert, it’s the other way around. This recipe detectsJ.Literal,J.NewArray, andjava.util.Iterablearguments swapping them if necessary so that the error messages won't be confusing. - Atomic Boolean, Integer, and Long equality checks compare their values - 
AtomicBoolean#equals(Object),AtomicInteger#equals(Object)andAtomicLong#equals(Object)are only equal to their instance. This recipe convertsa.equals(b)toa.get() == b.get(). - Avoid boxed boolean expressions - Under certain conditions the 
java.lang.Booleantype is used as an expression, and it may throw aNullPointerExceptionif the value is null. - Boolean checks should not be inverted - Ensures that boolean checks are not unnecessarily inverted. Also fixes double negative boolean expressions.
 - Call to Mockito method "verify", "when" or "given" should be simplified - Fixes Sonar issue 
java:S6068: Call to Mockito method "verify", "when" or "given" should be simplified. - CaseInsensitive comparisons do not alter case - Remove 
String#toLowerCase()orString#toUpperCase()fromString#equalsIgnoreCase(..)comparisons. - Catch clause should do more than just rethrow - A 
catchclause that only rethrows the caught exception is unnecessary. Letting the exception bubble up as normal achieves the same result with less code. - Change 
StringBuilderandStringBuffercharacter constructor argument toString- Instantiating aStringBuilderor aStringBufferwith aCharacterresults in theintrepresentation of the character being used for the initial size. - Combine semantically equal catch blocks - Combine catches in a try that contain semantically equivalent blocks. No change will be made when a caught exception exists if combining catches may change application behavior or type attribution is missing.
 - Constructors of an 
abstractclass should not be declaredpublic- Constructors ofabstractclasses can only be called in constructors of their subclasses. Therefore the visibility ofpublicconstructors are reduced toprotected. - Control flow statement indentation - Program flow control statements like 
if,while, andforcan omit curly braces when they apply to only a single statement. This recipe ensures that any statements which follow that statement are correctly indented to show they are not part of the flow control statement. - Covariant equals - Checks that classes and records which define a covariant 
equals()method also override methodequals(Object). Covariantequals()means a method that is similar toequals(Object), but with a covariant parameter type (any subtype ofObject). - Default comes last - Ensure the 
defaultcase comes last after all the cases in a switch statement. - End files with a single newline - Some tools work better when files end with an empty line.
 - Enum values should be compared with "==" - Replaces 
Enum equals(java.lang.Object)withEnum == java.lang.Object. An!Enum equals(java.lang.Object)will change to!=. - Equals avoids null - Checks that any combination of String literals is on the left side of an 
equals()comparison. Also checks for String literals assigned to some field (such assomeString.equals(anotherString = "text")). And removes redundant null checks in conjunction with equals comparisons. - Explicit initialization - Checks if any class or object member is explicitly initialized to default for its type value:  - 
nullfor object references - zero for numeric types andchar- andfalseforbooleanRemoves explicit initializations where they aren't necessary. - Fall through - Checks for fall-through in switch statements, adding 
breakstatements in locations where a case contains Java code but does not have abreak,return,throw, orcontinuestatement. - Finalize classes with private constructors - Adds the 
finalmodifier to classes that expose no public or package-private constructors. - Find empty classes - Find empty classes without annotations that do not implement an interface or extend a class.
 - Find methods with empty bodies - Find methods with empty bodies and single public no arg constructors.
 - Fix 
String#formatandString#formattedexpressions - FixString#formatandString#formattedexpressions by replacing\nnewline characters with%nand removing any unused arguments. Note this recipe is scoped to only transform format expressions which do not specify the argument index. - Fix missing braces - Adds missing braces around code such as single-line 
if,for,while, anddo-whileblock bodies. - Hidden field - Refactor local variables or parameters which shadow a field defined in the same class.
 - Hide utility class constructor - Ensures utility classes (classes containing only static methods or fields in their API) do not have a public constructor.
 - Include an assertion in tests - For tests not having any assertions, wrap the statements with JUnit Jupiter's 
Assertions#assertDoesNotThrow(..). - Inline variable - Inline variables when they are immediately used to return or throw. Supports both variable declarations and assignments to local variables.
 - JUnit 5 inner test classes should be annotated with 
@Nested- Adds@Nestedto inner classes that contain JUnit 5 tests. - Jump statements should not be redundant - Jump statements such as return and continue let you change the default flow of program execution, but jump statements that direct the control flow to the original direction are just a waste of keystrokes.
 - Loggers should be named for their enclosing classes - Ensure 
LoggerFactory#getLogger(Class)is called with the enclosing class as argument. - Modifier order - Modifiers should be declared in the correct order as recommended by the JLS.
 - Nested enums are not static - Remove static modifier from nested enum types since they are implicitly static.
 - No C-style array declarations - Change C-Style array declarations 
int i[];toint[] i;. - No double brace initialization - Replace 
List,Map, andSetdouble brace initialization with an initialization block. - No multiple variable declarations - Places each variable declaration in its own statement and on its own line. Using one variable declaration per line encourages commenting and can increase readability.
 - No primitive wrappers for #toString() or #compareTo(..) - Primitive wrappers should not be instantiated only for 
#toString()or#compareTo(..)invocations. - Order POM elements - Order POM elements according to the recommended order.
 - Parameterize SLF4J's logging statements - Use SLF4J's parameterized logging, which can significantly boost performance for messages that otherwise would be assembled with String concatenation. Particularly impactful when the log level is not enabled, as no work is done to assemble the message.
 - Parameterize logging statements - Transform logging statements using concatenation for messages and variables into a parameterized format. For example, 
logger.info("hi " + userName)becomeslogger.info("hi {}", userName). This can significantly boost performance for messages that otherwise would be assembled with String concatenation. Particularly impactful when the log level is not enabled, as no work is done to assemble the message. - Prefer 
Files#createTempDirectory()- Replaces GuavaFiles#createTempDir()with JavaFiles#createTempDirectory(..). Transformations are limited to scopes throwing or catchingjava.io.IOException. - Prefer 
Files#createTempFile(String, String, FileAttribute[])over alternatives that create files with more liberal permissions - Note thatFile#createTempFiletreats the given prefix as a path, and ignores all but its file name. That is, the actual prefix used is derived from all characters following the final file separator (if any). This is not the case withFiles#createTempFile, which will instead throw anIllegalArgumentExceptionif the prefix contains any file separators. - Prefer 
RandomGenerator#nextLong(long)over more contrived alternatives - Additionally, for large bounds, the unnecessary floating point arithmetic prevents somelongvalues from being generated. - Prefer 
java.util.Optional#or(Supplier<T extends java.util.Optional<T>>)- Preferjava.util.Optional#or(Supplier<T extends java.util.Optional<T>>)over `com.google.common.base.Optional#or(com.google.common.base.Optional). - Prefer 
java.util.Optional#orElse(null)overcom.google.common.base.Optional#orNull()- Replacescom.google.common.base.Optional#orNull()withjava.util.Optional#orElse(null). - Prefer 
java.util.Optional- Preferjava.util.Optionalinstead of usingcom.google.common.base.Optional. - Prefer 
java.util.function.Function- Preferjava.util.function.Functioninstead of usingcom.google.common.base.Function. - Prefer 
java.util.function.Predicate- Preferjava.util.function.Predicateinstead of usingcom.google.common.base.Predicate. - Prefer 
java.util.function.Supplier- Preferjava.util.function.Supplierinstead of usingcom.google.common.base.Supplier. - Prefer 
whileoverforloops - When only the condition expression is defined in a for loop, and the initialization and increment expressions are missing, a while loop should be used instead to increase readability. - Properly use declaration-site type variance for well-known types - When using a method parameter like 
Function<IN, OUT>, it should rather beFunction<? super IN, ? extends OUT>. This recipe checks for method parameters of well-known types. - Refaster template 
AssortedRules.LogicalImplication- Don't unnecessarily repeat boolean expressions. - Refaster template 
BigDecimalRules.BigDecimalValueOf- PreferBigDecimal#valueOf(double)over the associated constructor. - Refaster template 
CharSequenceRules.CharSequenceIsEmpty- PreferCharSequence#isEmpty()over alternatives that consult the char sequence's length. - Refaster template 
CollectionRules.CollectionIsEmpty- PreferCollection#isEmpty()over alternatives that consult the collection's size or are otherwise more contrived. - Refaster template 
DoubleStreamRules.DoubleStreamAnyMatch- PreferDoubleStream#anyMatch(DoublePredicate)over more contrived alternatives. - Refaster template 
EqualityRules.DoubleNegation- Avoid double negations; this is not Javascript. - Refaster template 
EqualityRules.IndirectDoubleNegation- Don't negate an inequality test or use the ternary operator to compare two booleans; directly test for equality instead. - Refaster template 
EqualityRules.Negation- Don't negate an equality test or use the ternary operator to compare two booleans; directly test for inequality instead. - Refaster template 
FileRules.FilesNewBufferedReaderPathOf- PreferFiles#newBufferedReader(Path)over more verbose or contrived alternatives. - Refaster template 
FileRules.FilesNewBufferedReaderToPath- PreferFiles#newBufferedReader(Path)over more verbose or contrived alternatives. - Refaster template 
ImmutableMapRules.ImmutableMapOf4- PreferImmutableMap#of(Object, Object, Object, Object, Object, Object, Object, Object)over alternatives that don't communicate the immutability of the resulting map at the type level. - Refaster template 
ImmutableMapRules.ImmutableMapOf5- PreferImmutableMap#of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)over alternatives that don't communicate the immutability of the resulting map at the type level. - Refaster template 
IntStreamRules.IntStreamAnyMatch- PreferIntStream#anyMatch(IntPredicate)over more contrived alternatives. - Refaster template 
LongStreamRules.LongStreamAnyMatch- PreferLongStream#anyMatch(LongPredicate)over more contrived alternatives. - Refaster template 
OptionalRules.OptionalOrElseThrow- PreferOptional#orElseThrow()over the less explicitOptional#get(). - Refaster template 
PrimitiveRules.GreaterThanOrEqualTo- Avoid contrived ways of expressing the "greater than or equal to" relationship. - Refaster template 
PrimitiveRules.GreaterThan- Avoid contrived ways of expressing the "greater than" relationship. - Refaster template 
PrimitiveRules.LessThanOrEqualTo- Avoid contrived ways of expressing the "less than or equal to" relationship. - Refaster template 
PrimitiveRules.LessThan- Avoid contrived ways of expressing the "less than" relationship. - Refaster template 
ReactorRules.FluxThenEmpty- Avoid vacuous invocations ofFlux#ignoreElements(). - Refaster template 
ReactorRules.FluxThenMono- Avoid vacuous invocations ofFlux#ignoreElements(). - Refaster template 
ReactorRules.FluxThen- Avoid vacuous invocations ofFlux#ignoreElements(). - Refaster template 
ReactorRules.MonoIdentity- Don't unnecessarily transform aMonoto an equivalent instance. - Refaster template 
ReactorRules.MonoThenEmpty- Avoid vacuous invocations ofMono#ignoreElement(). - Refaster template 
ReactorRules.MonoThenMono- Avoid vacuous operations prior to invocation ofMono#then(Mono). - Refaster template 
ReactorRules.MonoThen- Prefer direct invocation ofMono#then()} over more contrived alternatives. - Refaster template 
RxJava2AdapterRules.CompletableToMono- Use the fluent API style when usingRxJava2Adapter#completableToMono. - Refaster template 
StreamRules.StreamCount- Recipe created for the following Refaster template:java static final class StreamCount<T> { @BeforeTemplate @SuppressWarnings(value = "java:S4266") long before(Stream<T> stream) { return stream.collect(counting()); } @AfterTemplate long after(Stream<T> stream) { return stream.count(); } }. - Refaster template 
StreamRules.StreamMapCollect- Recipe created for the following Refaster template:java static final class StreamMapCollect<T, U, R> { @BeforeTemplate @SuppressWarnings(value = "java:S4266") R before(Stream<T> stream, Function<? super T, ? extends U> mapper, Collector<? super U, ?, R> collector) { return stream.collect(mapping(mapper, collector)); } @AfterTemplate R after(Stream<T> stream, Function<? super T, ? extends U> mapper, Collector<? super U, ?, R> collector) { return stream.map(mapper).collect(collector); } }. - Refaster template 
StreamRules.StreamMax- Recipe created for the following Refaster template:java static final class StreamMax<T> { @BeforeTemplate @SuppressWarnings(value = "java:S4266") Optional<T> before(Stream<T> stream, Comparator<? super T> comparator) { return Refaster.anyOf(stream.min(comparator.reversed()), Streams.findLast(stream.sorted(comparator)), stream.collect(maxBy(comparator))); } @AfterTemplate Optional<T> after(Stream<T> stream, Comparator<? super T> comparator) { return stream.max(comparator); } }. - Refaster template 
StreamRules.StreamMin- Recipe created for the following Refaster template:java static final class StreamMin<T> { @BeforeTemplate @SuppressWarnings(value = "java:S4266") Optional<T> before(Stream<T> stream, Comparator<? super T> comparator) { return Refaster.anyOf(stream.max(comparator.reversed()), stream.sorted(comparator).findFirst(), stream.collect(minBy(comparator))); } @AfterTemplate Optional<T> after(Stream<T> stream, Comparator<? super T> comparator) { return stream.min(comparator); } }. - Refaster template 
StreamRules.StreamReduceWithIdentity- Recipe created for the following Refaster template:java static final class StreamReduceWithIdentity<T> { @BeforeTemplate @SuppressWarnings(value = "java:S4266") T before(Stream<T> stream, T identity, BinaryOperator<T> accumulator) { return stream.collect(reducing(identity, accumulator)); } @AfterTemplate T after(Stream<T> stream, T identity, BinaryOperator<T> accumulator) { return stream.reduce(identity, accumulator); } }. - Refaster template 
StreamRules.StreamReduce- 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- Avoid unnecessary creation of new emptyStringobjects; use the empty string literal instead. - Refaster template 
StringRules.StringIdentity- Avoid unnecessary creation of newStringobjects. - Refaster template 
StringRules.StringIndexOfChar- PreferString#indexOf(int, int)over less efficient alternatives. - Refaster template 
StringRules.StringIndexOfString- PreferString#indexOf(String, int)over less efficient alternatives. - Refaster template 
StringRules.StringIsEmpty- PreferString#isEmpty()over alternatives that consult the string's length. - Refaster template 
StringRules.StringLastIndexOfChar- PreferString#lastIndexOf(int, int)over less efficient alternatives. - Refaster template 
StringRules.StringLastIndexOfString- PreferString#lastIndexOf(String, int)over less efficient alternatives. - Refaster template 
StringRules.StringStartsWith- PreferString#startsWith(String, int)over less efficient alternatives. - Refaster template 
TestNGToAssertJRules.AssertEqualWithMessage- Recipe created for the following Refaster template:java @SuppressWarnings(value = "java:S1448") static final class AssertEqualWithMessage { @BeforeTemplate void before(boolean actual, String message, boolean expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(boolean actual, String message, Boolean expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Boolean actual, String message, boolean expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Boolean actual, String message, Boolean expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(byte actual, String message, byte expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(byte actual, String message, Byte expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Byte actual, String message, byte expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Byte actual, String message, Byte expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(char actual, String message, char expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(char actual, String message, Character expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Character actual, String message, char expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Character actual, String message, Character expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(short actual, String message, short expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(short actual, String message, Short expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Short actual, String message, short expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Short actual, String message, Short expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(int actual, String message, int expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(int actual, String message, Integer expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Integer actual, String message, int expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Integer actual, String message, Integer expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(long actual, String message, long expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(long actual, String message, Long expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Long actual, String message, long expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Long actual, String message, Long expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(float actual, String message, float expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(float actual, String message, Float expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Float actual, String message, float expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Float actual, String message, Float expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(double actual, String message, double expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(double actual, String message, Double expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Double actual, String message, double expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Double actual, String message, Double expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Object actual, String message, Object expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(String actual, String message, String expected) { assertEquals(actual, expected, message); } @BeforeTemplate void before(Map<?, ?> actual, String message, Map<?, ?> expected) { assertEquals(actual, expected, message); } @AfterTemplate @UseImportPolicy(value = STATIC_IMPORT_ALWAYS) void after(Object actual, String message, Object expected) { assertThat(actual).withFailMessage(message).isEqualTo(expected); } }. - Refaster template 
TestNGToAssertJRules.AssertEqual- Recipe created for the following Refaster template:java @SuppressWarnings(value = "java:S1448") static final class AssertEqual { @BeforeTemplate void before(boolean actual, boolean expected) { assertEquals(actual, expected); } @BeforeTemplate void before(boolean actual, Boolean expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Boolean actual, boolean expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Boolean actual, Boolean expected) { assertEquals(actual, expected); } @BeforeTemplate void before(byte actual, byte expected) { assertEquals(actual, expected); } @BeforeTemplate void before(byte actual, Byte expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Byte actual, byte expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Byte actual, Byte expected) { assertEquals(actual, expected); } @BeforeTemplate void before(char actual, char expected) { assertEquals(actual, expected); } @BeforeTemplate void before(char actual, Character expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Character actual, char expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Character actual, Character expected) { assertEquals(actual, expected); } @BeforeTemplate void before(short actual, short expected) { assertEquals(actual, expected); } @BeforeTemplate void before(short actual, Short expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Short actual, short expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Short actual, Short expected) { assertEquals(actual, expected); } @BeforeTemplate void before(int actual, int expected) { assertEquals(actual, expected); } @BeforeTemplate void before(int actual, Integer expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Integer actual, int expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Integer actual, Integer expected) { assertEquals(actual, expected); } @BeforeTemplate void before(long actual, long expected) { assertEquals(actual, expected); } @BeforeTemplate void before(long actual, Long expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Long actual, long expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Long actual, Long expected) { assertEquals(actual, expected); } @BeforeTemplate void before(float actual, float expected) { assertEquals(actual, expected); } @BeforeTemplate void before(float actual, Float expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Float actual, float expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Float actual, Float expected) { assertEquals(actual, expected); } @BeforeTemplate void before(double actual, double expected) { assertEquals(actual, expected); } @BeforeTemplate void before(double actual, Double expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Double actual, double expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Double actual, Double expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Object actual, Object expected) { assertEquals(actual, expected); } @BeforeTemplate void before(String actual, String expected) { assertEquals(actual, expected); } @BeforeTemplate void before(Map<?, ?> actual, Map<?, ?> expected) { assertEquals(actual, expected); } @AfterTemplate @UseImportPolicy(value = STATIC_IMPORT_ALWAYS) void after(Object actual, Object expected) { assertThat(actual).isEqualTo(expected); } }. - Reformat local variable names to camelCase - Reformat local variable and method parameter names to camelCase to comply with Java naming convention. The recipe will not rename variables declared in for loop controls or catches with a single character. The first character is set to lower case and existing capital letters are preserved. Special characters that are allowed in java field names 
$and_are removed (unless the name starts with one). If a special character is removed the next valid alphanumeric will be capitalized. Currently, does not support renaming members of classes. The recipe will not rename a variable if the result already exists in the class, conflicts with a java reserved keyword, or the result is blank. - Reformat private field names to camelCase - Reformat private field names to camelCase to comply with Java naming convention. The recipe will not rename fields with default, protected or public access modifiers. The recipe will not rename private constants. The first character is set to lower case and existing capital letters are preserved. Special characters that are allowed in java field names 
$and_are removed. If a special character is removed the next valid alphanumeric will be capitalized. The recipe will not rename a field if the result already exists in the class, conflicts with a java reserved keyword, or the result is blank. - Remove 
@Nullableand@CheckForNullannotations from primitives - Primitives can't be null anyway, so these annotations are not useful in this context. - Remove 
@RequestMappingannotations - Replace method declaration@RequestMappingannotations with@GetMapping,@PostMapping, etc. when possible. - Remove 
Object.finalize()invocations - Remove calls toObject.finalize(). This method is called during garbage collection and calling it manually is misleading. - Remove 
com.google.common.base.Optional#toJavaUtil()- Remove calls tocom.google.common.base.Optional#toJavaUtil(). - Remove 
finalize()method - Finalizers are deprecated. Use offinalize()can lead to performance issues, deadlocks, hangs, and other undesirable behavior. - Remove 
publicvisibility of JUnit 5 tests - Removepublicand optionallyprotectedmodifiers 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. - Remove 
toString()calls on arrays - The result fromtoString()calls on arrays is largely useless. The output does not actually reflect the contents of the array.Arrays.toString(array)should be used instead as it gives the contents of the array. - Remove empty blocks - Remove empty blocks that effectively do nothing.
 - Remove empty tests without comments - Removes empty methods with a 
@Testannotation if the body does not have comments. - Remove extra semicolons - Removes not needed semicolons. Semicolons are considered not needed: * Optional semicolons at the end of try-with-resources, * after the last enum value if no field or method is defined, * no statement between two semicolon.
 - Remove garbage collection invocations - Removes calls to 
System.gc()andRuntime.gc(). When to invoke garbage collection is best left to the JVM. - Remove redundant casts - Removes unnecessary type casts. Does not currently check casts in lambdas and class constructors.
 - Remove redundant null checks before instanceof - Removes redundant null checks before instanceof operations since instanceof returns false for null.
 - Remove unnecessary parentheses - Removes unnecessary parentheses from code where extra parentheses pairs are redundant.
 - Remove unused imports - Remove imports for types that are not referenced. As a precaution against incorrect changes no imports will be removed from any source where unknown types are referenced. The most common cause of unknown types is the use of annotation processors not supported by OpenRewrite, such as lombok.
 - Remove unused local variables - If a local variable is declared but not used, it is dead code and should be removed.
 - Remove unused private fields - If a private field is declared but not used in the program, it can be considered dead code and should therefore be removed.
 - Remove unused private methods - 
privatemethods that are never executed are dead code and should be removed. - Rename methods named 
hashcode,equal, ortostring- Methods should not be namedhashcode,equal, ortostring. Any of these are confusing as they appear to be intended as overridden methods from theObjectbase class, despite being case-insensitive. - Rename packages to lowercase - 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.
 - Replace 
A.class.isInstance(a)witha instanceof A- There should be noA.class.isInstance(a), it should be replaced bya instanceof A. - Replace 
Stream.collect(Collectors.toUnmodifiableList())withStream.toList()- ReplaceStream.collect(Collectors.toUnmodifiableList())with Java 16+Stream.toList(). Also replacesStream.collect(Collectors.toList())ifconvertToListis set totrue. - Replace 
catch(Exception)with specific declared exceptions thrown in the try block - Replacescatch(Exception e)blocks with a multi-catch block (catch (SpecificException1 | SpecificException2 e)) containing only the exceptions declared thrown by method or constructor invocations within thetryblock that are not already caught by more specificcatchclauses. - Replace 
com.google.common.base.Optional#fromJavaUtil(java.util.Optional)with argument - Replacescom.google.common.base.Optional#fromJavaUtil(java.util.Optional)with argument. - Replace 
fail()intry-catchblocks withAssertions.assertDoesNotThrow(() -> { ... })- Replacetry-catchblocks wherecatchmerely contains afail()forfail(String)statement withAssertions.assertDoesNotThrow(() -> { ... }). - Replace calls to 
Thread.run()withThread.start()-Thread.run()should not be called directly. - Replace duplicate 
Stringliterals - ReplacesStringliterals with a length of 5 or greater repeated a minimum of 3 times. QualifiedStringliterals include final Strings, method invocations, and new class invocations. Adds a newprivate static final Stringor uses an existing equivalent class field. A new variable name will be generated based on the literal value if an existing field does not exist. The generated name will append a numeric value to the variable name if a name already exists in the compilation unit. - Replace referential equality operators with Object equals method invocations when the operands both override 
Object.equals(Object obj)- Using==or!=compares object references, not the equality of two objects. This modifies code where both sides of a binary operation (==or!=) overrideObject.equals(Object obj)except when the comparison is within an overriddenObject.equals(Object obj)method declaration itself. The resulting transformation must be carefully reviewed since any modifications change the program's semantics. - Replaces 
Object.notify()withObject.notifyAll()-Object.notifyAll()andObject.notify()both wake up sleeping threads, butObject.notify()only rouses one whileObject.notifyAll()rouses all of them. SinceObject.notify()might not wake up the right thread,Object.notifyAll()should be used instead. See this for more information. - Secure random - Use cryptographically secure Pseudo Random Number Generation in the "main" source set. Replaces instantiation of 
java.util.Randomwithjava.security.SecureRandom. - SecureRandom seeds are not constant or predictable - Remove 
SecureRandom#setSeed(*)method invocations having constant or predictable arguments. - Simplify AssertJ chained assertions - Many AssertJ chained assertions have dedicated assertions that function the same. It is best to use the dedicated assertions.
 - Simplify 
Arrays.asList(..)with varargs - SimplifiesArrays.asList()method calls that use explicit array creation to use varargs instead. For example,Arrays.asList(new String[]{"a", "b", "c"})becomesArrays.asList("a", "b", "c"). - Simplify boolean expression - Checks for overly complicated boolean expressions, such as 
if (b == true),b || true,!false, etc. - Simplify boolean expressions using De Morgan's laws - Applies De Morgan's laws to simplify boolean expressions with negation. Transforms 
!(a && b)to!a || !band!(a || b)to!a && !b. - Simplify boolean return - Simplifies Boolean expressions by removing redundancies. For example, 
a && truesimplifies toa. - Standardize method name casing - Fixes method names that do not follow standard naming conventions. For example, 
String getFoo_bar()would be adjusted toString getFooBar()andint DoSomething()would be adjusted toint doSomething(). - Static methods need not be final - Static methods do not need to be declared final because they cannot be overridden.
 - Structural equality tests should use 
==or!=- In Kotlin,==means structural equality and!=structural inequality and both map to the left-side term’sequals()function. It is, therefore, redundant to callequals()as a function. Also,==and!=are more general thanequals()and!equals()because it allows either of both operands to benull. Developers usingequals()instead of==or!=is often the result of adapting styles from other languages like Java, where==means reference equality and!=means reference inequality. The==and!=operators are a more concise and elegant way to test structural equality than calling a function. - Ternary operators should not be nested - Nested ternary operators can be hard to read quickly. Prefer simpler constructs for improved readability. If supported, this recipe will try to replace nested ternaries with switch expressions.
 - URL Equals - Uses of 
equals()causejava.net.URLto make blocking internet connections. Instead, usejava.net.URI. - URL Equals and Hash Code - Uses of 
equals()andhashCode()causejava.net.URLto make blocking internet connections. Instead, usejava.net.URI. - URL Hash Code - Uses of 
hashCode()causejava.net.URLto make blocking internet connections. Instead, usejava.net.URI. - Unnecessary 
String#toString- Remove unnecessaryString#toStringinvocations on objects which are already a string. - Unnecessary 
String#valueOf(..)- Replace unnecessaryString#valueOf(..)method invocations with the argument directly. This occurs when the argument toString#valueOf(arg)is a string literal, such asString.valueOf("example"). Or, when theString#valueOf(..)invocation is used in a concatenation, such as"example" + String.valueOf("example"). - Unnecessary close in try-with-resources - Remove unnecessary 
AutoCloseable#close()statements in try-with-resources. - Unnecessary throws - Remove unnecessary 
throwsdeclarations. This recipe will only remove unused, checked exceptions if: - The declaring class or the method declaration isfinal. - The method declaration isstaticorprivate. - The method overrides a method declaration in a super class and the super class does not throw the exception. - The method ispublicorprotectedand the exception is not documented via a JavaDoc as a@throwstag. - Upper case literal suffixes - Using upper case literal suffixes for declaring literals is less ambiguous, e.g., 
1lversus1L. - Use %n instead of \n in format strings - Format strings should use %n rather than \n to produce platform-specific line separators.
 - Use 
Collection#isEmpty()instead of comparingsize()- Also check for notisEmpty()when testing for not equal to zero size. - Use 
Collectioninterfaces - UseDeque,List,Map,ConcurrentMap,Queue, andSetinstead of implemented collections. Replaces the return type of public method declarations and the variable type public variable declarations. - Use 
Collections#emptyList(),emptyMap(), andemptySet()- ReplacesCollections#EMPTY_...with methods that return generic types. - Use 
Files#createTempDirectory- UseFiles#createTempDirectorywhen the sequenceFile#createTempFile(..)->File#delete()->File#mkdir()is used for creating a temp directory. - Use 
String.equals()onStringliterals -String.equals()should be used when checking value equality on String literals. Using==or!=compares object references, not the actual value of the Strings. This only modifies code where at least one side of the binary operation (==or!=) is a String literal, such as"someString" == someVariable;. This is to prevent inadvertently changing code where referential equality is the user's intent. - Use 
String::replace()when first parameter is not a real regular expression - WhenString::replaceAllis used, the first argument should be a real regular expression. If it’s not the case,String::replacedoes exactly the same thing asString::replaceAllwithout the performance drawback of the regex. - Use 
indexOf(String, int)- ReplacesindexOf(String)in binary operations if the compared value is an int and not less than 1. - Use comparison rather than equality checks in for conditions - Testing for loop termination using an equality operator (
==and!=) is dangerous, because it could set up an infinite loop. Using a relational operator instead makes it harder to accidentally write an infinite loop. - Use explicit types on lambda arguments - Adds explicit types on lambda arguments, which are otherwise optional. This can make the code clearer and easier to read. This does not add explicit types on arguments when the lambda has one or two parameters and does not have a block body, as things are considered more readable in those cases. For example, 
stream.map((a, b) -> a.length);will not have explicit types added. - Use lambda expressions instead of anonymous classes - 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.
 - Use method references in lambda - Replaces the single statement lambdas 
o -> o instanceOf X,o -> (A) o,o -> System.out.println(o),o -> o != null,o -> o == nullwith the equivalent method reference. - Use primitive wrapper 
valueOfmethod - The constructor of all primitive types has been deprecated in favor of using the static factory methodvalueOfavailable for each of the primitive type wrappers. - Use the diamond operator - The diamond operator (
<>) should be used. Java 7 introduced the diamond operator to reduce the verbosity of generics code. For instance, instead of having to declare aList's type in both its declaration and its constructor, you can now simplify the constructor declaration with<>, and the compiler will infer the type. - Week Year (YYYY) should not be used for date formatting - 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.
 - Wrapping and braces - Format line wraps and braces in Java code.
 - Write octal values as decimal - Developers may not recognize octal values as such, mistaking them instead for decimal values.
 BigDecimalrounding constants toRoundingModeenums - ConvertBigDecimalrounding constants to the equivalentRoundingModeenum.Externalizableclasses have no-arguments constructor -Externalizableclasses handle both serialization and deserialization and must have a no-args constructor for the deserialization process.finalize()calls super - Overrides ofObject#finalize()should call super.forloop counters incremented in update - The increment should be moved to the loop's increment clause if possible.hashCode()should not be called on array instances - ReplacehashCode()calls on arrays withArrays.hashCode()because the results fromhashCode()are not helpful.indexOf()replaceable bycontains()- Checking if a value is included in aStringorListusingindexOf(value)>-1orindexOf(value)>=0can be replaced withcontains(value).indexOfshould not compare greater than zero - ReplacesString#indexOf(String) > 0andList#indexOf(Object) > 0with>=1. CheckingindexOfagainst>0ignores the first element, whereas>-1is inclusive of the first element. For clarity,>=1is used, because>0and>=1are semantically equal. Using>0may appear to be a mistake with the intent of including all elements. If the intent is to check whether a value in included in aStringorList, theString#contains(String)orList#contains(Object)methods may be better options altogether.itshouldn't be used as a lambda parameter name -itis a special identifier that allows you to refer to the current parameter being passed to a lambda expression without explicitly naming the parameter. Lambda expressions are a concise way of writing anonymous functions. Many lambda expressions have only one parameter, when this is true the compiler can determine the parameter type by context. Thus when using it with single parameter lambda expressions, you do not need to declare the type.new BigDecimal(double)should not be used - Use ofnew BigDecimal(double)constructor can lead to loss of precision. UseBigDecimal.valueOf(double)instead. For example writingnew BigDecimal(0.1)does not create aBigDecimalwhich is exactly equal to0.1, but it is equal to0.1000000000000000055511151231257827021181583404541015625. This is because0.1cannot be represented exactly as a double (or, for that matter, as a binary fraction of any finite length).switchstatements should have at least 3caseclauses -switchstatements are useful when many code paths branch depending on the value of a single expression. For just one or two code paths, the code will be more readable withifstatements.
sap
1 recipe
- Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from 
cf-java-logging-support-servlettocf-java-logging-support-servlet-jakarta, to use Jakarta with Spring Boot 3. 
scala
1 recipe
- Migrate to Scala 2.12.+ - Upgrade the Scala version for compatibility with newer Java versions.
 
scheduler
2 recipes
- Replace Spring Boot Batch with Quarkus Scheduler - Migrates 
spring-boot-starter-batchtoquarkus-scheduler. - Replace Spring Boot Quartz with Quarkus Quartz - Migrates 
spring-boot-starter-quartztoquarkus-quartz. 
schemas
37 recipes
- Add 
prefer-application-packagesfor JPA inweblogic.xml- This recipe will add aprefer-application-packagesentry for Jakarta Persistence inweblogic.xmlif it does not already exist. - Add 
prefer-application-packagesfor SLF4J inweblogic.xml- This recipe will add aprefer-application-packagesentry for SLF4J inweblogic.xmlif it does not already exist. - Create 
weblogic.xmlif it does not exist - This recipe will create aweblogic.xmlfile with the WebLogic 15.1.1 namespace if it does not already exist. - Migrate WebLogic Schemas to 14.1.2 - This recipe will migrate WebLogic schemas to 14.1.2
 - Migrate WebLogic Schemas to 15.1.1 - This recipe will migrate WebLogic schemas to 15.1.1
 - Migrate xmlns entries in 
*-jdbc.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JDBC schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
*-jdbc.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries in*-jdbc.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
*-jms.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
*-jms.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries in*-jms.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
application-client.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application Client schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
application-client.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inapplication-client.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 Persistence Configuration schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inpersistence-configuration.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
plan.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
plan.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inplan.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
resource-deployment-plan.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Deployment Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
resource-deployment-plan.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inresource-deployment-plan.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-application.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-application.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-application.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-ejb-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ejb-jar.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ejb-jar.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-pubsub.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic PubSub schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-pubsub.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-pubsub.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Adapter schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ra.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 RDBMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-rdbms-jar.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-webservices-policy.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Web Service Policy Reference schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-webservices-policy.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-webservices-policy.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-webservices.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Web Services schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-webservices.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-webservices.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic WSEE Client Handler Chains schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-wsee-standaloneclient.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic WSEE Standalone Client schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-wsee-standaloneclient.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-wsee-standaloneclient.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic.xmlfiles to WebLogic 15.1.1 
sdk
3 recipes
- Add AWS SDK for Java v2 S3 Event Notification dependency if needed - This recipe will add the Java v2 S3 Event Notification dependency if v1 S3EventNotification is used
 - Add AWS SDK for Java v2 S3 Transfer Manager dependency if needed - This recipe will add the Java v2 S3 Transfer Manager dependency if v1 Transfer Manager is used
 - Migrate from the AWS SDK for Java v1 to the AWS SDK for Java v2 - This recipe will apply changes required for migrating from the AWS SDK for Java v1 to the AWS SDK for Java v2.
 
search
1 recipe
- Finds uses of 
Encryptors.queryableText()-Encryptors.queryableText()is insecure and is removed in Spring Security 6. 
secrets
1 recipe
- Replace OSSRH secrets with Sonatype secrets - Replace deprecated OSSRH_S01 secrets with new Sonatype secrets in GitHub Actions workflows. This is an example use of the 
ReplaceSecretsandReplaceSecretKeysrecipes combined used to update the Maven publishing secrets in OpenRewrite's GitHub organization. 
security
59 recipes
- Find AWS secrets - Locates AWS secrets stored in plain text in code.
 - Find Artifactory secrets - Locates Artifactory secrets stored in plain text in code.
 - Find Azure secrets - Locates Azure secrets stored in plain text in code.
 - Find Discord secrets - Locates Discord secrets stored in plain text in code.
 - Find Facebook secrets - Locates Facebook secrets stored in plain text in code.
 - Find GitHub secrets - Locates GitHub secrets stored in plain text in code.
 - Find Google secrets - Locates Google secrets stored in plain text in code.
 - Find Heroku secrets - Locates Heroku secrets stored in plain text in code.
 - Find MailChimp secrets - Locates MailChimp secrets stored in plain text in code.
 - Find Mailgun secrets - Locates Mailgun secrets stored in plain text in code.
 - Find NPM secrets - Locates NPM secrets stored in plain text in code.
 - Find PGP secrets - Locates PGP secrets stored in plain text in code.
 - Find PayPal secrets - Locates PayPal secrets stored in plain text in code.
 - Find Picatic secrets - Locates Picatic secrets stored in plain text in code.
 - Find RSA private keys - Locates RSA private keys stored in plain text in code.
 - Find SSH secrets - Locates SSH secrets stored in plain text in code.
 - Find SendGrid secrets - Locates SendGrid secrets stored in plain text in code.
 - Find Square secrets - Locates Square secrets stored in plain text in code.
 - Find Stripe secrets - Locates Stripe secrets stored in plain text in code.
 - Find Telegram secrets - Locates Telegram secrets stored in plain text in code.
 - Find Twilio secrets - Locates Twilio secrets stored in plain text in code.
 - Find Twitter secrets - Locates Twitter secrets stored in plain text in code.
 - Find generic secrets - Locates generic secrets stored in plain text in code.
 - Find passwords used in URLs - Locates URLs that contain passwords in plain text.
 - Find plain text secrets - Find secrets stored in plain text in code.
 - Find secrets - Locates secrets stored in plain text in code.
 - Finds uses of 
Encryptors.queryableText()-Encryptors.queryableText()is insecure and is removed in Spring Security 6. - GitHub Actions security insights - Finds potential security issues in GitHub Actions workflows, based on Zizmor security analysis rules.
 - Java security best practices - Applies security best practices to Java code.
 - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.auth.messagepackages tojakarta.security.auth.message- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.security.jaccpackages tojakarta.security.jacc- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate to Spring Security 5.7 - 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 - 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 - 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.
 - Migrate to Spring Security 6.1 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.2 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.3 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.4 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.4 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.5 - 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 6.5 - 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.
 - Relocate 
org.apache.commons:commons-iotocommons-io:commons-io- The deployment oforg.apache.commons:commons-iowas a publishing mistake around 2012 which was corrected by changing the deployment GAV to be located undercommons-io:commons-io. - Remove Security AccessController - The Security Manager API is unsupported in Java 24. This recipe will remove the usage of 
java.security.AccessController. - Remove Security Policy - The Security Manager API is unsupported in Java 24. This recipe will remove the use of 
java.security.Policy. - Remove Security SecurityManager - The Security Manager API is unsupported in Java 24. This recipe will remove the usage of 
java.security.SecurityManager. - Remove unnecessary 
use-authorization-managerfor message security in Spring security 6 - In Spring Security 6,<websocket-message-broker>defaultsuse-authorization-managertotrue. So, theuse-authorization-managerattribute for message security is no longer needed and can be removed. - Rename the package name from 
com.nimbusds.jose.shaded.jsontonet.minidev.json- Rename the package name fromcom.nimbusds.jose.shaded.jsontonet.minidev.json. - Replace Spring Boot OAuth2 Client with Quarkus OIDC Client - Migrates spring-boot-starter-oauth2-client
toquarkus-oidc-client`. - Replace Spring Boot OAuth2 Resource Server with Quarkus OIDC - Migrates 
spring-boot-starter-oauth2-resource-servertoquarkus-oidc. - Replace Spring Boot Security with Quarkus Security - Migrates 
spring-boot-starter-securitytoquarkus-security. - Replace 
System.getSecurityManager()withnull- The Security Manager API is unsupported in Java 24. This recipe will replaceSystem.getSecurityManager()withnullto make its behavior more obvious and try to simplify execution paths afterwards. - Replace global method security with method security - 
@EnableGlobalMethodSecurityand<global-method-security>are deprecated in favor of@EnableMethodSecurityand<method-security>, respectively. The new annotation and XML element activate Spring’s pre-post annotations by default and use AuthorizationManager internally. - Upgrade Log4j 2.x dependency version - Upgrades the Log4j 2.x dependencies to the latest 2.x version. Mitigates the Log4Shell and other Log4j2-related vulnerabilities.
 - Use HTTPS for repositories - Use HTTPS for repository URLs.
 - Use HTTPS for repositories - Use HTTPS for repository URLs.
 - Use 
actions/setup-javaIBMsemerudistribution - Adopt OpenJDK got moved to Eclipse Temurin and won't be updated anymore. It is highly recommended to migrate workflows from adopt-openj9 to IBM semeru to keep receiving software and security updates. See more details in the Good-bye AdoptOpenJDK post. - Use 
actions/setup-javatemurindistribution - 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. 
servlet
1 recipe
- Add Jakarta EE 9 Servlet Dependency - Add Jakarta EE 9 Servlet Dependency if using jakarta.servlet.ServletContext
 
sleuth
1 recipe
- Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0 - Spring Cloud Sleuth has been discontinued and only compatible with Spring Boot 2.x.
 
slf4j
12 recipes
- Enhances logging of exceptions by including the full stack trace in addition to the exception message - It is a common mistake to call 
Exception.getMessage()when passing an exception into a log method. Not all exception types have useful messages, and even if the message is useful this omits the stack trace. Including a complete stack trace of the error along with the exception message in the log allows developers to better understand the context of the exception and identify the source of the error more quickly and accurately. If the method invocation includes any call toException.getMessage()orException.getLocalizedMessage()and not an exception is already passed as the last parameter to the log method, then we will append the exception as the last parameter in the log method. - Loggers should be named for their enclosing classes - Ensure 
LoggerFactory#getLogger(Class)is called with the enclosing class as argument. - Migrate Apache Commons Logging 1.x to SLF4J 1.x - Transforms usages of Apache Commons Logging 1.x to leveraging SLF4J 1.x directly.
 - Migrate JBoss Logging to SLF4J - Migrates usage of the JBoss Logging facade to using SLF4J.
 - Migrate JUL to SLF4J - Migrates usage of Java Util Logging (JUL) to using SLF4J directly.
 - Migrate Log4j 1.x to SLF4J 1.x - Transforms usages of Log4j 1.x to leveraging SLF4J 1.x directly. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate Log4j 2.x to SLF4J 1.x - Transforms usages of Log4j 2.x to leveraging SLF4J 1.x directly. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate Log4j to SLF4J - Migrates usage of Apache Log4j to using SLF4J directly. Use of the traditional Log4j to SLF4J bridge can result in loss of performance, as the Log4j messages must be formatted before they can be passed to SLF4J. Note, this currently does not modify 
log4j.propertiesfiles. - Migrate SLF4J to Log4j 2.x API - Transforms code written using SLF4J to use Log4j 2.x API.
 - Parameterize SLF4J's logging statements - Use SLF4J's parameterized logging, which can significantly boost performance for messages that otherwise would be assembled with String concatenation. Particularly impactful when the log level is not enabled, as no work is done to assemble the message.
 - SLF4J best practices - Applies best practices to logging with SLF4J.
 - SLF4J logging statements should begin with constants - Logging statements shouldn't begin with 
String#format, calls totoString(), etc. 
spring
129 recipes
- Add Spring compatibility extensions for commonly used annotations - Adds Quarkus Spring compatibility extensions when Spring annotations are detected in the codebase.
 - Add or replace Spring Boot build plugin with Quarkus build plugin - 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 - 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 - Jetty does not yet support Servlet 6.0. This recipe will detect the presence of the 
spring-boot-starter-jettyas a first-order dependency and will add the maven propertyjakarta-servlet.versionsetting it's value to5.0.0. This will downgrade thejakarta-servletartifact if the pom's parent extends from the spring-boot-parent. - Find patterns that require updating for Spring Boot 2.5 - Looks for a series of patterns that have not yet had auto-remediation recipes developed for.
 - Find projects affected by changes to the default error view message attribute - As of Spring Boot 2.5 the 
messageattribute in the default error view was removed rather than blanked when it is not shown.spring-webmvcorspring-webfluxprojects that parse the error response JSON may need to deal with the missing item (release notes). You can still use theserver.error.include-messageproperty if you want messages to be included. - Finds uses of 
Encryptors.queryableText()-Encryptors.queryableText()is insecure and is removed in Spring Security 6. - Migrate Enabled to Access Spring Boot Properties - Migrate properties found in 
application.propertiesandapplication.yml, specifically converting 'enabled' to 'access' - Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from 
cf-java-logging-support-servlettocf-java-logging-support-servlet-jakarta, to use Jakarta with Spring Boot 3. - Migrate Spring Boot 2.x projects to JUnit 5 from JUnit 4 - This recipe will migrate a Spring Boot application's tests from JUnit 4 to JUnit 5. This spring-specific migration includes conversion of Spring Test runners to Spring Test extensions and awareness of the composable Spring Test annotations.
 - Migrate Spring Boot 3.5 deprecated classes and methods - Migrate deprecated classes and methods that have been marked for removal in Spring Boot 3.5.
 - Migrate Spring Boot properties to 2.0 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.1 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.2 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.3 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.4 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.5 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.6 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 2.7 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.0 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.1 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.2 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.3 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.4 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 3.5 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot properties to 4.0 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Boot to Quarkus - Replace Spring Boot with Quarkus.
 - Migrate Spring Cloud Gateway Properties - Migrate Spring Cloud Gateway properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway Proxy WebMvc Properties - Migrate Spring Cloud Gateway Proxy WebMvc properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway Proxy Webflux Properties - Migrate Spring Cloud Gateway Proxy Webflux properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway WebMvc Properties - Migrate Spring Cloud Gateway WebMvc properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Gateway Webflux Properties - Migrate Spring Cloud Gateway Webflux properties for Spring Cloud 2025 release.
 - Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0 - Spring Cloud Sleuth has been discontinued and only compatible with Spring Boot 2.x.
 - Migrate Spring Cloud properties to 2020 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2021 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2022 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2023 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2024 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring Cloud properties to 2025 - Migrate properties found in 
application.propertiesandapplication.yml. - Migrate Spring to Spring Boot - 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 
@EnableXyzannotations to Quarkus extensions - Removes Spring@EnableXyzannotations and adds the corresponding Quarkus extensions as dependencies. - Migrate 
@EndpointSecurity properties to 3.4 - Migrate the settings for Spring Boot Management Endpoint Security fromtrue|falsetoread-only|none. - Migrate database drivers to Quarkus JDBC extensions - Replaces Spring Boot database driver dependencies with their Quarkus JDBC extension equivalents.
 - Migrate dropWizard dependencies to Spring Boot 3.x - Migrate dropWizard dependencies to the new artifactId, since these are changed with Spring Boot 3.
 - Migrate from Spring Boot 1.x to 2.0 - 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 rider-spring (JUnit4) to rider-junit5 (JUnit5) - This recipe will migrate the necessary dependencies and annotations from DbRider with JUnit4 to JUnit5 in a Spring application.
 - Migrate thymeleaf dependencies to Spring Boot 3.x - Migrate thymeleaf dependencies to the new artifactId, since these are changed with Spring Boot 3.
 - Migrate to New Spring Cloud Gateway Modules and Starters - Migrate to new Spring Cloud Gateway modules and starters for Spring Cloud 2025
 - Migrate to Spring Batch 5.0 from 4.3 - Migrate applications built on Spring Batch 4.3 to the latest Spring Batch 5.0 release.
 - Migrate to Spring Boot 2.1 - 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 - 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 - 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.
 - Migrate to Spring Boot 2.4 - Migrate applications to the latest Spring Boot 2.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 2.4.
 - Migrate to Spring Boot 2.6 - Migrate applications to the latest Spring Boot 2.6 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.6.
 - Migrate to Spring Boot 3.0 - Migrate applications to the latest Spring Boot 3.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.7.
 - Migrate to Spring Boot 3.1 - Migrate applications to the latest Spring Boot 3.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 3.0.
 - Migrate to Spring Boot 3.2 - Migrate applications to the latest Spring Boot 3.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 3.1.
 - Migrate to Spring Boot 3.3 - Migrate applications to the latest Spring Boot 3.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 3.2.
 - Migrate to Spring Boot 3.4 - 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.4 - 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.
 - Migrate to Spring Boot 3.5 - 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 3.5 - 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.
 - Migrate to Spring Cloud 2022 - Migrate applications to the latest Spring Cloud 2022 (Kilburn) release.
 - Migrate to Spring Cloud 2023 - Migrate applications to the latest Spring Cloud 2023 (Leyton) release.
 - Migrate to Spring Cloud 2024 - Migrate applications to the latest Spring Cloud 2024 (Moorgate) release.
 - Migrate to Spring Cloud 2025 - Migrate applications to the latest Spring Cloud 2025 (Northfields) release.
 - Migrate to Spring Kafka 3.0 - Migrate applications to the latest Spring Kafka 3.0 release.
 - Migrate to Spring Kafka 3.3 - Migrate applications to the latest Spring Kafka 3.3 release.
 - Migrate to Spring Security 5.7 - 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 - 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 - 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.
 - Migrate to Spring Security 6.1 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.2 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.3 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.4 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.4 - Migrate applications to the latest Spring Security 6.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.
 - Migrate to Spring Security 6.5 - 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 6.5 - 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 the deprecated properties 
additional-keys-to-sanitizefrom theconfigpropsandenvend points - 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 unnecessary 
use-authorization-managerfor message security in Spring security 6 - In Spring Security 6,<websocket-message-broker>defaultsuse-authorization-managertotrue. So, theuse-authorization-managerattribute for message security is no longer needed and can be removed. - Rename 
server.max-http-header-sizetoserver.max-http-request-header-size- 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 aWebServerFactoryCustomizer. - Rename the package name from 
com.nimbusds.jose.shaded.jsontonet.minidev.json- Rename the package name fromcom.nimbusds.jose.shaded.jsontonet.minidev.json. - Replace Derby driver with Quarkus JDBC Derby - Migrates 
org.apache.derby:derbyorderbyclienttoio.quarkus:quarkus-jdbc-derby(excludes test scope) - Replace Derby test driver with Quarkus JDBC Derby (test scope) - Migrates 
org.apache.derby:derbywith test scope toio.quarkus:quarkus-jdbc-derbywith test scope - Replace H2 driver with Quarkus JDBC H2 - Migrates 
com.h2database:h2toio.quarkus:quarkus-jdbc-h2(excludes test scope) - Replace H2 test driver with Quarkus JDBC H2 (test scope) - Migrates 
com.h2database:h2with test scope toio.quarkus:quarkus-jdbc-h2with test scope - Replace Spring Boot AMQP with Quarkus Messaging AMQP - Migrates 
spring-boot-starter-amqptoquarkus-messaging-amqpwhen reactor dependencies are present. - Replace Spring Boot AMQP with Quarkus Messaging RabbitMQ - Migrates 
spring-boot-starter-amqptoquarkus-messaging-rabbitmqwhen no reactor dependencies are present. - Replace Spring Boot ActiveMQ with Quarkus Artemis JMS - Migrates 
spring-boot-starter-activemqtoquarkus-artemis-jms. - Replace Spring Boot Actuator with Quarkus SmallRye Health - Migrates 
spring-boot-starter-actuatortoquarkus-smallrye-health. - Replace Spring Boot Artemis with Quarkus Artemis JMS - Migrates 
spring-boot-starter-artemistoquarkus-artemis-jms. - Replace Spring Boot Batch with Quarkus Scheduler - Migrates 
spring-boot-starter-batchtoquarkus-scheduler. - Replace Spring Boot Cache with Quarkus Cache - Migrates 
spring-boot-starter-cachetoquarkus-cache. - Replace Spring Boot Data JPA with Quarkus Hibernate ORM Panache - Migrates 
spring-boot-starter-data-jpatoquarkus-hibernate-orm-panache. - Replace Spring Boot Data MongoDB with Quarkus MongoDB Panache - Migrates 
spring-boot-starter-data-mongodbtoquarkus-mongodb-panache. - Replace Spring Boot Data REST with Quarkus REST - Migrates 
spring-boot-starter-data-resttoquarkus-rest-jackson. - Replace Spring Boot Data Redis with Quarkus Redis Client - Migrates 
spring-boot-starter-data-redistoquarkus-redis-client. - Replace Spring Boot Elasticsearch with Quarkus Elasticsearch REST Client - Migrates 
spring-boot-starter-data-elasticsearchtoquarkus-elasticsearch-rest-client. - Replace Spring Boot Integration with Camel Quarkus - Migrates 
spring-boot-starter-integrationtocamel-quarkus-core. - Replace Spring Boot JDBC with Quarkus Agroal - Migrates 
spring-boot-starter-jdbctoquarkus-agroal. - Replace Spring Boot Mail with Quarkus Mailer - Migrates 
spring-boot-starter-mailtoquarkus-mailer. - Replace Spring Boot OAuth2 Client with Quarkus OIDC Client - Migrates spring-boot-starter-oauth2-client
toquarkus-oidc-client`. - Replace Spring Boot OAuth2 Resource Server with Quarkus OIDC - Migrates 
spring-boot-starter-oauth2-resource-servertoquarkus-oidc. - Replace Spring Boot Quartz with Quarkus Quartz - Migrates 
spring-boot-starter-quartztoquarkus-quartz. - Replace Spring Boot Security with Quarkus Security - Migrates 
spring-boot-starter-securitytoquarkus-security. - Replace Spring Boot Test with Quarkus JUnit 5 - Migrates 
spring-boot-starter-testtoquarkus-junit5. - Replace Spring Boot Thymeleaf with Quarkus Qute - Migrates 
spring-boot-starter-thymeleaftoquarkus-qute. - Replace Spring Boot Validation with Quarkus Hibernate Validator - Migrates 
spring-boot-starter-validationtoquarkus-hibernate-validator. - Replace Spring Boot Web with Quarkus REST - Migrates 
spring-boot-starter-webtoquarkus-rest-jacksonwhen reactor dependencies are present. - Replace Spring Boot Web with Quarkus RESTEasy Classic - Migrates 
spring-boot-starter-webtoquarkus-resteasy-jacksonwhen no reactor dependencies are present. - Replace Spring Boot WebFlux with Quarkus REST Client - Migrates 
spring-boot-starter-webfluxtoquarkus-rest-client-jacksonwhen reactor dependencies are present. - Replace Spring Boot WebSocket with Quarkus WebSockets - Migrates 
spring-boot-starter-websockettoquarkus-websockets. - Replace Spring Boot starter dependencies with Quarkus equivalents - Migrates Spring Boot starter dependencies to their Quarkus equivalents, removing version tags as Quarkus manages versions through its BOM.
 - Replace Spring Kafka with Quarkus Kafka Client - Migrates 
spring-kafkatoquarkus-kafka-clientwhen no reactor dependencies are present. - Replace Spring Kafka with Quarkus Messaging Kafka - Migrates 
spring-kafkatoquarkus-messaging-kafkawhen reactor dependencies are present. - Replace String literals with Spring constants - Replace String literals with Spring constants where applicable.
 - Replace global method security with method security - 
@EnableGlobalMethodSecurityand<global-method-security>are deprecated in favor of@EnableMethodSecurityand<method-security>, respectively. The new annotation and XML element activate Spring’s pre-post annotations by default and use AuthorizationManager internally. - Spring Boot 2.x best practices - Applies best practices to Spring Boot 2 applications.
 - Spring Boot 3.3 best practices - Applies best practices to Spring Boot 3 applications.
 - Spring Boot 3.3 best practices (only) - Applies best practices to Spring Boot 3 applications, without chaining in upgrades to Spring Boot.
 - Spring Boot 3.5 best practices - Applies best practices to Spring Boot 3.5+ applications.
 - Update OpenTelemetry resource attributes - The 
service.groupresource attribute has been deprecated for OpenTelemetry in Spring Boot 3.5. Consider using alternative attributes or remove the deprecated attribute. - Upgrade Gradle 8 to 8.4+ for Spring Boot 3.4 - Spring Boot 3.4 requires Gradle 8.4+.
 - Upgrade Gradle to 7.6.4+ for Spring Boot 3.4 - Spring Boot 3.4 requires Gradle 7.6.4.
 - Upgrade dependencies to Spring Cloud 2022 - Upgrade dependencies to Spring Cloud 2022 from prior 2021.x version.
 - Upgrade dependencies to Spring Cloud 2023 - Upgrade dependencies to Spring Cloud 2023 from prior 2022.x version.
 - Upgrade dependencies to Spring Cloud 2024 - Upgrade dependencies to Spring Cloud 2024 from prior 2023.x version.
 - Upgrade dependencies to Spring Cloud 2025 - Upgrade dependencies to Spring Cloud 2025 from prior 2024.x version.
 - Use bean name 
applicationTaskExecutorinstead oftaskExecutor- Spring Boot 3.5 removed the bean nametaskExecutor. Where this bean name is used, the recipe replaces the bean name toapplicationTaskExecutor. This also includes instances where the developer provided their own bean namedtaskExecutor. This also includes scenarios where JSR-250's@Resourceannotation is used. 
springdata
2 recipes
- Upgrade Spring Data BOM to 2024.1.x - Upgrade Spring Data BOM to 2024.1.x version.
 - Upgrade Spring Data JPA to 3.4.6 - Upgrade Spring Data JPA to 3.4.6 version, which is the version used by spring-data-bom v2024.1.x
 
springdoc
9 recipes
- Migrate from SpringFox Swagger to SpringDoc and OpenAPI - Migrate from SpringFox Swagger to SpringDoc and OpenAPI.
 - Migrate from Swagger to SpringDoc and OpenAPI - Migrate from Swagger to SpringDoc and OpenAPI.
 - Migrate from springdoc-openapi-common to springdoc-openapi-starter-common - Migrate from springdoc-openapi-common to springdoc-openapi-starter-common.
 - Replace SpringFox Dependencies - Replace SpringFox Dependencies.
 - Upgrade to SpringDoc 2.1 - Upgrade to SpringDoc v2.1, as described in the upgrade guide.
 - Upgrade to SpringDoc 2.2 - Upgrade to SpringDoc v2.2.
 - Upgrade to SpringDoc 2.5 - Upgrade to SpringDoc v2.5.
 - Upgrade to SpringDoc 2.6 - Upgrade to SpringDoc v2.6.
 - Upgrade to SpringDoc 2.8 - Upgrade to SpringDoc v2.8.
 
springfox
2 recipes
- Migrate from SpringFox Swagger to SpringDoc and OpenAPI - Migrate from SpringFox Swagger to SpringDoc and OpenAPI.
 - Replace SpringFox Dependencies - Replace SpringFox Dependencies.
 
springframework
9 recipes
- Add WebLogic 15.1.1 PetClinic extras - Run migration extras for migrated Spring Framework PetClinic example run on WebLogic 15.1.1.
 - Change cacheManager to use the SimpleCacheManager - Change cacheManager to use the SimpleCacheManager.
 - Migrate to Spring Framework 6.2 for WebLogic 15.1.1 - Migrate applications to the Spring Framework 6.2 release and compatibility with WebLogic 15.1.1.
 - Replace Removed WebLogicJtaTransactionManager from Spring Framework 5.3.x to 6.2.x - Replace removed WebLogicJtaTransactionManager with JtaTransactionManager from Spring Framework 6.2.x.
 - Replace Removed WebLogicLoadTimeWeaver from Spring Framework 5.3.x to 6.2.x - Replace removed WebLogicLoadTimeWeaver with LoadTimeWeaver from Spring Framework 6.2.x.
 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2.
 - Update Default Servlet Handler for Spring Framework if empty - This recipe will update Spring Framework default servlet handler if empty, as noted in the Spring Framework 6.2 documentation.
 - Upgrade Spring Data BOM to 2024.1.x - Upgrade Spring Data BOM to 2024.1.x version.
 - Upgrade Spring Data JPA to 3.4.6 - Upgrade Spring Data JPA to 3.4.6 version, which is the version used by spring-data-bom v2024.1.x
 
sql
6 recipes
- Convert Oracle data types to PostgreSQL - Replaces Oracle-specific data types with PostgreSQL equivalents.
 - Convert Oracle functions to PostgreSQL - Replaces Oracle-specific functions with PostgreSQL equivalents.
 - Convert SQL Server data types to PostgreSQL - Replaces SQL Server-specific data types with PostgreSQL equivalents.
 - Convert SQL Server functions to PostgreSQL - Replaces SQL Server-specific functions with PostgreSQL equivalents.
 - Migrate Oracle SQL to PostgreSQL - Converts Oracle-specific SQL syntax and functions to PostgreSQL equivalents.
 - Migrate SQL Server to PostgreSQL - Converts Microsoft SQL Server-specific SQL syntax and functions to PostgreSQL equivalents.
 
sqlserver
4 recipes
- Add missing Flyway module for SQL Server - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the 
flyway-sqlserverdependency if you are using SQL Server with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780. - Convert SQL Server data types to PostgreSQL - Replaces SQL Server-specific data types with PostgreSQL equivalents.
 - Convert SQL Server functions to PostgreSQL - Replaces SQL Server-specific functions with PostgreSQL equivalents.
 - Migrate SQL Server to PostgreSQL - Converts Microsoft SQL Server-specific SQL syntax and functions to PostgreSQL equivalents.
 
storybook
9 recipes
- A story should not have a redundant name property - A story should not have a redundant name property See rule details for storybook/no-redundant-story-name
 - Deprecated hierarchy separator in title property - Deprecated hierarchy separator in title property See rule details for storybook/hierarchy-separator
 - Do not define a title in meta - Do not define a title in meta See rule details for storybook/no-title-property-in-meta
 - Do not use testing-library directly on stories - Do not use testing-library directly on stories See rule details for storybook/use-storybook-testing-library
 - Interactions should be awaited - Interactions should be awaited See rule details for storybook/await-interactions
 - Recommended Storybook code cleanup - Collection of cleanup ESLint rules from eslint-plugin-storybook.
 - Stories should use PascalCase - Stories should use PascalCase See rule details for storybook/prefer-pascal-case
 - Story files should have a default export - Story files should have a default export See rule details for storybook/default-exports
 - Use expect from @storybook/jest - Use expect from @storybook/jest See rule details for storybook/use-storybook-expect
 
stylistic
87 recipes
- Disallow arrow functions where they could be confused with comparisons - Disallow arrow functions where they could be confused with comparisons See rule details
 - Disallow extra closing tags for components without children - Disallow extra closing tags for components without children See rule details
 - Disallow leading or trailing decimal points in numeric literals - Disallow leading or trailing decimal points in numeric literals See rule details
 - Disallow missing parentheses around multiline JSX - Disallow missing parentheses around multiline JSX See rule details
 - Disallow multiple empty lines - Disallow multiple empty lines See rule details
 - Disallow multiple spaces - Disallow multiple spaces See rule details
 - Disallow multiple spaces between inline JSX props - Disallow multiple spaces between inline JSX props See rule details
 - Disallow or enforce spaces inside of blocks after opening block and before closing block - Disallow or enforce spaces inside of blocks after opening block and before closing block See rule details
 - Disallow trailing whitespace at the end of lines - Disallow trailing whitespace at the end of lines See rule details
 - Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes - Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes See rule details
 - Disallow unnecessary parentheses - Disallow unnecessary parentheses See rule details
 - Disallow unnecessary semicolons - Disallow unnecessary semicolons See rule details
 - Disallow whitespace before properties - Disallow whitespace before properties See rule details
 - Enforce JSX indentation - Enforce JSX indentation See rule details
 - Enforce PascalCase for user-defined JSX components - Enforce PascalCase for user-defined JSX components See rule details
 - Enforce closing bracket location in JSX - Enforce closing bracket location in JSX See rule details
 - Enforce closing tag location for multiline JSX - Enforce closing tag location for multiline JSX See rule details
 - Enforce consistent brace style for blocks - Enforce consistent brace style for blocks See rule details
 - Enforce consistent comma style - Enforce consistent comma style See rule details
 - Enforce consistent indentation - Enforce consistent indentation See rule details
 - Enforce consistent line breaks after opening and before closing braces - Enforce consistent line breaks after opening and before closing braces See rule details
 - Enforce consistent line breaks inside function parentheses - Enforce consistent line breaks inside function parentheses See rule details
 - Enforce consistent linebreak style - Enforce consistent linebreak style See rule details
 - Enforce consistent linebreak style for operators - Enforce consistent linebreak style for operators See rule details
 - Enforce consistent linebreaks in curly braces in JSX attributes and expressions - Enforce consistent linebreaks in curly braces in JSX attributes and expressions See rule details
 - Enforce consistent newlines before and after dots - Enforce consistent newlines before and after dots See rule details
 - Enforce consistent spacing after the `//` or `/*` in a comment - Enforce consistent spacing after the `//` or `/*` in a comment See rule details
 - Enforce consistent spacing around `*` operators in generator functions - Enforce consistent spacing around `*` operators in generator functions See rule details
 - Enforce consistent spacing before `function` definition opening parenthesis - Enforce consistent spacing before `function` definition opening parenthesis See rule details
 - Enforce consistent spacing before and after commas - Enforce consistent spacing before and after commas See rule details
 - Enforce consistent spacing before and after keywords - Enforce consistent spacing before and after keywords See rule details
 - Enforce consistent spacing before and after semicolons - Enforce consistent spacing before and after semicolons See rule details
 - Enforce consistent spacing before and after the arrow in arrow functions - Enforce consistent spacing before and after the arrow in arrow functions See rule details
 - Enforce consistent spacing before blocks - Enforce consistent spacing before blocks See rule details
 - Enforce consistent spacing before or after unary operators - Enforce consistent spacing before or after unary operators See rule details
 - Enforce consistent spacing between keys and values in object literal properties - Enforce consistent spacing between keys and values in object literal properties See rule details
 - Enforce consistent spacing inside array brackets - Enforce consistent spacing inside array brackets See rule details
 - Enforce consistent spacing inside braces - Enforce consistent spacing inside braces See rule details
 - Enforce consistent spacing inside computed property brackets - Enforce consistent spacing inside computed property brackets See rule details
 - Enforce consistent spacing inside parentheses - Enforce consistent spacing inside parentheses See rule details
 - Enforce line breaks after each array element - Enforce line breaks after each array element See rule details
 - Enforce line breaks between arguments of a function call - Enforce line breaks between arguments of a function call See rule details
 - Enforce linebreaks after opening and before closing array brackets - Enforce linebreaks after opening and before closing array brackets See rule details
 - Enforce location of semicolons - Enforce location of semicolons See rule details
 - Enforce maximum of props on a single line in JSX - Enforce maximum of props on a single line in JSX See rule details
 - Enforce newlines between operands of ternary expressions - Enforce newlines between operands of ternary expressions See rule details
 - Enforce or disallow parentheses when invoking a constructor with no arguments - Enforce or disallow parentheses when invoking a constructor with no arguments See rule details
 - Enforce or disallow spaces around equal signs in JSX attributes - Enforce or disallow spaces around equal signs in JSX attributes See rule details
 - Enforce or disallow spaces inside of curly braces in JSX attributes and expressions - Enforce or disallow spaces inside of curly braces in JSX attributes and expressions See rule details
 - Enforce placing object properties on separate lines - Enforce placing object properties on separate lines See rule details
 - Enforce proper position of the first property in JSX - Enforce proper position of the first property in JSX See rule details
 - Enforce props alphabetical sorting - Enforce props alphabetical sorting See rule details
 - Enforce props indentation in JSX - Enforce props indentation in JSX See rule details
 - Enforce spacing around colons of switch statements - Enforce spacing around colons of switch statements See rule details
 - Enforce spacing between rest and spread operators and their expressions - Enforce spacing between rest and spread operators and their expressions See rule details
 - Enforce the consistent use of either backticks, double, or single quotes - Enforce the consistent use of either backticks, double, or single quotes See rule details
 - Enforce the consistent use of either double or single quotes in JSX attributes - Enforce the consistent use of either double or single quotes in JSX attributes See rule details
 - Enforce the location of arrow function bodies - Enforce the location of arrow function bodies See rule details
 - Enforce the location of single-line statements - Enforce the location of single-line statements See rule details
 - Enforce whitespace in and around the JSX opening and closing brackets - Enforce whitespace in and around the JSX opening and closing brackets See rule details
 - Enforces consistent spacing inside TypeScript type generics - Enforces consistent spacing inside TypeScript type generics See rule details
 - Expect space before the type declaration in the named tuple - Expect space before the type declaration in the named tuple See rule details
 - Indentation for binary operators - Indentation for binary operators See rule details
 - Recommended ESLint Styling - Collection of stylistic ESLint rules that are recommended by the ESLint Style.
 - Require a newline after each call in a method chain - Require a newline after each call in a method chain See rule details
 - Require a specific member delimiter style for interfaces and type literals - Require a specific member delimiter style for interfaces and type literals See rule details
 - Require consistent spacing around type annotations - Require consistent spacing around type annotations See rule details
 - Require empty lines around comments - Require empty lines around comments See rule details
 - Require one JSX element per line - Require one JSX element per line See rule details
 - Require or disallow an empty line between class members - Require or disallow an empty line between class members See rule details
 - Require or disallow newline at the end of files - Require or disallow newline at the end of files See rule details
 - Require or disallow newlines around variable declarations - Require or disallow newlines around variable declarations See rule details
 - Require or disallow padding lines between statements - Require or disallow padding lines between statements See rule details
 - Require or disallow padding within blocks - Require or disallow padding within blocks See rule details
 - Require or disallow semicolons instead of ASI - Require or disallow semicolons instead of ASI See rule details
 - Require or disallow spacing around embedded expressions of template strings - Require or disallow spacing around embedded expressions of template strings See rule details
 - Require or disallow spacing around the `` in `yield` expressions - Require or disallow spacing around the `` in `yield` expressions See rule details
 - Require or disallow spacing between function identifiers and their invocations - Require or disallow spacing between function identifiers and their invocations See rule details
 - Require or disallow spacing between function identifiers and their invocations. Alias of `function-call-spacing`. - Require or disallow spacing between function identifiers and their invocations. Alias of `function-call-spacing`. See rule details
 - Require or disallow spacing between template tags and their literals - Require or disallow spacing between template tags and their literals See rule details
 - Require or disallow trailing commas - Require or disallow trailing commas See rule details
 - Require or prevent a new line after jsx elements and expressions. - Require or prevent a new line after jsx elements and expressions. See rule details
 - Require parentheses around arrow function arguments - Require parentheses around arrow function arguments See rule details
 - Require parentheses around immediate `function` invocations - Require parentheses around immediate `function` invocations See rule details
 - Require parenthesis around regex literals - Require parenthesis around regex literals See rule details
 - Require quotes around object literal property names - Require quotes around object literal property names See rule details
 - Require spacing around infix operators - Require spacing around infix operators See rule details
 
supply
1 recipe
- GitHub Actions security insights - Finds potential security issues in GitHub Actions workflows, based on Zizmor security analysis rules.
 
svelte
18 recipes
- Recommended svelte code cleanup - Collection of cleanup ESLint rules from eslint-plugin-svelte.
 - disallow dynamic slot name - disallow dynamic slot name See rule details for svelte/no-dynamic-slot-name
 - disallow spaces around equal signs in attribute - disallow spaces around equal signs in attribute See rule details for svelte/no-spaces-around-equal-signs-in-attribute
 - disallow to use of the store itself as an operand. Need to use $ prefix or get function. - disallow to use of the store itself as an operand. Need to use $ prefix or get function. See rule details for svelte/require-store-reactive-access
 - disallow unnecessary mustache interpolations - disallow unnecessary mustache interpolations See rule details for svelte/no-useless-mustaches
 - enforce consistent indentation - enforce consistent indentation See rule details for svelte/indent
 - enforce consistent spacing after the <!-- and before the --> in a HTML comment - enforce consistent spacing after the <!-- and before the --> in a HTML comment See rule details for svelte/spaced-html-comment
 - enforce order of attributes - enforce order of attributes See rule details for svelte/sort-attributes
 - enforce quotes style of HTML attributes - enforce quotes style of HTML attributes See rule details for svelte/html-quotes
 - enforce self-closing style - enforce self-closing style See rule details for svelte/html-self-closing
 - enforce the location of first attribute - enforce the location of first attribute See rule details for svelte/first-attribute-linebreak
 - enforce the maximum number of attributes per line - enforce the maximum number of attributes per line See rule details for svelte/max-attributes-per-line
 - enforce unified spacing in mustache - enforce unified spacing in mustache See rule details for svelte/mustache-spacing
 - enforce use of shorthand syntax in attribute - enforce use of shorthand syntax in attribute See rule details for svelte/shorthand-attribute
 - enforce use of shorthand syntax in directives - enforce use of shorthand syntax in directives See rule details for svelte/shorthand-directive
 - require class directives instead of ternary expressions - require class directives instead of ternary expressions See rule details for svelte/prefer-class-directive
 - require or disallow a space before tag's closing brackets - require or disallow a space before tag's closing brackets See rule details for svelte/html-closing-bracket-spacing
 - require style directives instead of style attribute - require style directives instead of style attribute See rule details for svelte/prefer-style-directive
 
swagger
9 recipes
- Migrate from SpringFox Swagger to SpringDoc and OpenAPI - Migrate from SpringFox Swagger to SpringDoc and OpenAPI.
 - Migrate from Swagger to OpenAPI - Migrate from Swagger to OpenAPI.
 - Migrate from Swagger to SpringDoc and OpenAPI - Migrate from Swagger to SpringDoc and OpenAPI.
 - Migrate from 
@ApiImplicitParamsto@Parameters- Converts@ApiImplicitParamsto@Parametersand the@ApiImplicitParamannotation to@Parameterand converts the directly mappable attributes and removes the others. - Migrate from 
@ApiModelPropertyto@Schema- Converts the@ApiModelPropertyannotation to@Schemaand converts the "value" attribute to "description". - Migrate from 
@ApiOperationto@Operation- Converts the@ApiOperationannotation to@Operationand converts the directly mappable attributes and removes the others. - Migrate from 
@ApiParamto@Parameter- Converts the@ApiParamannotation to@Parameterand converts the directly mappable attributes. - Migrate from 
@ApiResponsesto@ApiResponses- Changes the namespace of the@ApiResponsesand@ApiResponseannotations and converts its attributes (ex. code -> responseCode, message -> description, response -> content). - Use Jakarta Swagger Artifacts - Migrate from javax Swagger artifacts to Jakarta versions.
 
taglib
3 recipes
- Add implicit TLD with taglib 2.1 - Add 
implicit.tldfile with taglib 2.1 tosrc/main/webapp/WEB-INF/tags. - Add implicit TLD with taglib 3.0 - Add 
implicit.tldfile with taglib 3.0 tosrc/main/webapp/WEB-INF/tags. - Migrate xmlns entries in 
*taglib*.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
taglibs
1 recipe
- Migrate Tag Libraries to 2.0 (Jakarta EE 9) - Upgrade Jakarta Standard Tag libraries to 2.0 (Jakarta EE9) versions.
 
templating
1 recipe
- Replace Spring Boot Thymeleaf with Quarkus Qute - Migrates 
spring-boot-starter-thymeleaftoquarkus-qute. 
terraform
114 recipes
- Best practices for AWS - Securely operate on Amazon Web Services.
 - Best practices for Azure - Securely operate on Microsoft Azure.
 - Best practices for GCP - Securely operate on Google Cloud Platform.
 - Disable Instance Metadata Service version 1 - As a request/response method IMDSv1 is prone to local misconfigurations.
 - Disable Kubernetes dashboard - Disabling the dashboard eliminates it as an attack vector. The dashboard add-on is disabled by default for all new clusters created on Kubernetes 1.18 or greater.
 - Enable API gateway caching - Enable caching for all methods of API Gateway.
 - Enable Azure Storage Account Trusted Microsoft Services access - Certain Microsoft services that interact with storage accounts operate from networks that cannot be granted access through network rules. Using this configuration, you can allow the set of trusted Microsoft services to bypass those network rules.
 - Enable Azure Storage secure transfer required - Microsoft recommends requiring secure transfer for all storage accounts.
 - Enable VPC Flow Logs for subnetworks - Ensure GCP VPC flow logs for subnets are enabled. Flow Logs capture information on IP traffic moving through network interfaces. This information can be used to monitor anomalous traffic and provide security insights.
 - Enable VPC flow logs and intranode visibility - Enable VPC flow logs and intranode visibility.
 - Enable 
PodSecurityPolicycontroller on Google Kubernetes Engine (GKE) clusters - EnsurePodSecurityPolicycontroller is enabled on Google Kubernetes Engine (GKE) clusters. - Enable geo-redundant backups on PostgreSQL server - Ensure PostgreSQL server enables geo-redundant backups.
 - Enable point-in-time recovery for DynamoDB - DynamoDB Point-In-Time Recovery (PITR) is an automatic backup service for DynamoDB table data that helps protect your DynamoDB tables from accidental write or delete operations.
 - Encrypt Aurora clusters - Native Aurora encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
 - Encrypt Azure VM data disk with ADE/CMK - Ensure Azure VM data disk is encrypted with ADE/CMK.
 - Encrypt CodeBuild projects - Build artifacts, such as a cache, logs, exported raw test report data files, and build results, are encrypted by default using CMKs for Amazon S3 that are managed by the AWS Key Management Service.
 - Encrypt DAX storage at rest - DAX encryption at rest automatically integrates with AWS KMS for managing the single service default key used to encrypt clusters.
 - Encrypt DocumentDB storage - The encryption feature available for Amazon DocumentDB clusters provides an additional layer of data protection by helping secure your data against unauthorized access to the underlying storage.
 - Encrypt EBS snapshots - EBS snapshots should be encrypted, as they often include sensitive information, customer PII or CPNI.
 - Encrypt EBS volume launch configurations - EBS volumes allow you to create encrypted launch configurations when creating EC2 instances and auto scaling. When the entire EBS volume is encrypted, data stored at rest on the volume, disk I/O, snapshots created from the volume, and data in-transit between EBS and EC2 are all encrypted.
 - Encrypt EBS volumes - Encrypting EBS volumes ensures that replicated copies of your images are secure even if they are accidentally exposed. AWS EBS encryption uses AWS KMS customer master keys (CMK) when creating encrypted volumes and snapshots. Storing EBS volumes in their encrypted state reduces the risk of data exposure or data loss.
 - Encrypt EFS Volumes in ECS Task Definitions in transit - Enable attached EFS definitions in ECS tasks to use encryption in transit.
 - Encrypt ElastiCache Redis at rest - ElastiCache for Redis offers default encryption at rest as a service.
 - Encrypt ElastiCache Redis in transit - ElastiCache for Redis offers optional encryption in transit. In-transit encryption provides an additional layer of data protection when transferring data over standard HTTPS protocol.
 - Encrypt Neptune storage - Encryption of Neptune storage protects data and metadata against unauthorized access.
 - Encrypt RDS clusters - Native RDS encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
 - Encrypt Redshift storage at rest - Redshift clusters should be securely encrypted at rest.
 - Ensure AKS policies add-on - Azure Policy Add-on for Kubernetes service (AKS) extends Gatekeeper v3, an admission controller webhook for Open Policy Agent (OPA), to apply at-scale enforcements and safeguards on your clusters in a centralized, consistent manner.
 - Ensure AKV secrets have an expiration date set - Ensure AKV secrets have an expiration date set.
 - Ensure AWS CMK rotation is enabled - Ensure AWS CMK rotation is enabled.
 - Ensure AWS EFS with encryption for data at rest is enabled - Ensure AWS EFS with encryption for data at rest is enabled.
 - Ensure AWS EKS cluster endpoint access is publicly disabled - Ensure AWS EKS cluster endpoint access is publicly disabled.
 - Ensure AWS Elasticsearch domain encryption for data at rest is enabled - Ensure AWS Elasticsearch domain encryption for data at rest is enabled.
 - Ensure AWS Elasticsearch domains have 
EnforceHTTPSenabled - Ensure AWS Elasticsearch domains haveEnforceHTTPSenabled. - Ensure AWS Elasticsearch has node-to-node encryption enabled - Ensure AWS Elasticsearch has node-to-node encryption enabled.
 - Ensure AWS IAM password policy has a minimum of 14 characters - Ensure AWS IAM password policy has a minimum of 14 characters.
 - Ensure AWS Lambda function is configured for function-level concurrent execution limit - Ensure AWS Lambda function is configured for function-level concurrent execution limit.
 - Ensure AWS Lambda functions have tracing enabled - Ensure AWS Lambda functions have tracing enabled.
 - Ensure AWS RDS database instance is not publicly accessible - Ensure AWS RDS database instance is not publicly accessible.
 - Ensure AWS S3 object versioning is enabled - Ensure AWS S3 object versioning is enabled.
 - Ensure Amazon EKS control plane logging enabled for all log types - Ensure Amazon EKS control plane logging enabled for all log types.
 - Ensure Azure App Service Web app redirects HTTP to HTTPS - Ensure Azure App Service Web app redirects HTTP to HTTPS.
 - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days - Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days.
 - Ensure Azure PostgreSQL database server with SSL connection is enabled - Ensure Azure PostgreSQL database server with SSL connection is enabled.
 - Ensure Azure SQL Server threat detection alerts are enabled for all threat types - Ensure Azure SQL Server threat detection alerts are enabled for all threat types.
 - Ensure Azure SQL server audit log retention is greater than 90 days - Ensure Azure SQL server audit log retention is greater than 90 days.
 - Ensure Azure SQL server send alerts to field value is set - Ensure Azure SQL server send alerts to field value is set.
 - Ensure Azure application gateway has WAF enabled - Ensure Azure application gateway has WAF enabled.
 - Ensure Azure key vault is recoverable - Ensure Azure key vault is recoverable.
 - Ensure CloudTrail log file validation is enabled - Ensure CloudTrail log file validation is enabled.
 - Ensure EC2 is EBS optimized - Ensure EC2 is EBS optimized.
 - Ensure ECR repositories are encrypted - Ensure ECR repositories are encrypted.
 - Ensure FTP Deployments are disabled - Ensure FTP Deployments are disabled.
 - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled.
 - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled.
 - Ensure GCP VM instances have block project-wide SSH keys feature enabled - Ensure GCP VM instances have block project-wide SSH keys feature enabled.
 - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled.
 - Ensure IAM password policy expires passwords within 90 days or less - Ensure IAM password policy expires passwords within 90 days or less.
 - Ensure IAM password policy prevents password reuse - Ensure IAM password policy prevents password reuse.
 - Ensure IAM password policy requires at least one lowercase letter - Ensure IAM password policy requires at least one lowercase letter.
 - Ensure IAM password policy requires at least one number - Ensure IAM password policy requires at least one number.
 - Ensure IAM password policy requires at least one symbol - Ensure IAM password policy requires at least one symbol.
 - Ensure IAM password policy requires at least one uppercase letter - Ensure IAM password policy requires at least one uppercase letter.
 - Ensure IP forwarding on instances is disabled - Ensure IP forwarding on instances is disabled.
 - Ensure Kinesis Stream is securely encrypted - Ensure Kinesis Stream is securely encrypted.
 - Ensure MSSQL servers have email service and co-administrators enabled - Ensure MSSQL servers have email service and co-administrators enabled.
 - Ensure MySQL is using the latest version of TLS encryption - Ensure MySQL is using the latest version of TLS encryption.
 - Ensure MySQL server databases have Enforce SSL connection enabled - Ensure MySQL server databases have Enforce SSL connection enabled.
 - Ensure MySQL server disables public network access - Ensure MySQL server disables public network access.
 - Ensure MySQL server enables Threat Detection policy - Ensure MySQL server enables Threat Detection policy.
 - Ensure MySQL server enables geo-redundant backups - Ensure MySQL server enables geo-redundant backups.
 - Ensure PostgreSQL server disables public network access - Ensure PostgreSQL server disables public network access.
 - Ensure PostgreSQL server enables Threat Detection policy - Ensure PostgreSQL server enables Threat Detection policy.
 - Ensure PostgreSQL server enables infrastructure encryption - Ensure PostgreSQL server enables infrastructure encryption.
 - Ensure RDS database has IAM authentication enabled - Ensure RDS database has IAM authentication enabled.
 - Ensure RDS instances have Multi-AZ enabled - Ensure RDS instances have Multi-AZ enabled.
 - Ensure Send email notification for high severity alerts is enabled - Ensure Send email notification for high severity alerts is enabled.
 - Ensure Send email notification for high severity alerts to admins is enabled - Ensure Send email notification for high severity alerts to admins is enabled.
 - Ensure VPC subnets do not assign public IP by default - Ensure VPC subnets do not assign public IP by default.
 - Ensure Web App has incoming client certificates enabled - Ensure Web App has incoming client certificates enabled.
 - Ensure Web App uses the latest version of HTTP - Ensure Web App uses the latest version of HTTP.
 - Ensure Web App uses the latest version of TLS encryption - Ensure Web App uses the latest version of TLS encryption.
 - Ensure a security contact phone number is present - Ensure a security contact phone number is present.
 - Ensure activity log retention is set to 365 days or greater - Ensure activity log retention is set to 365 days or greater.
 - Ensure all keys have an expiration date - Ensure all keys have an expiration date.
 - Ensure app service enables HTTP logging - Ensure app service enables HTTP logging.
 - Ensure app service enables detailed error messages - Ensure app service enables detailed error messages.
 - Ensure app service enables failed request tracing - Ensure app service enables failed request tracing.
 - Ensure app services use Azure files - Ensure app services use Azure files.
 - Ensure binary authorization is used - Ensure binary authorization is used.
 - Ensure compute instances launch with shielded VM enabled - Ensure compute instances launch with shielded VM enabled.
 - Ensure data stored in an S3 bucket is securely encrypted at rest - Ensure data stored in an S3 bucket is securely encrypted at rest.
 - Ensure detailed monitoring for EC2 instances is enabled - Ensure detailed monitoring for EC2 instances is enabled.
 - Ensure enhanced monitoring for Amazon RDS instances is enabled - Ensure enhanced monitoring for Amazon RDS instances is enabled.
 - Ensure key vault allows firewall rules settings - Ensure key vault allows firewall rules settings.
 - Ensure key vault enables purge protection - Ensure key vault enables purge protection.
 - Ensure key vault key is backed by HSM - Ensure key vault key is backed by HSM.
 - Ensure key vault secrets have 
content_typeset - Ensure key vault secrets havecontent_typeset. - Ensure log profile is configured to capture all activities - Ensure log profile is configured to capture all activities.
 - Ensure managed identity provider is enabled for app services - Ensure managed identity provider is enabled for app services.
 - Ensure private cluster is enabled when creating Kubernetes clusters - Ensure private cluster is enabled when creating Kubernetes clusters.
 - Ensure public network access enabled is set to False for mySQL servers - Ensure public network access enabled is set to False for mySQL servers.
 - Ensure respective logs of Amazon RDS are enabled - Ensure respective logs of Amazon RDS are enabled.
 - Ensure secure boot for shielded GKE nodes is enabled - Ensure secure boot for shielded GKE nodes is enabled.
 - Ensure shielded GKE nodes are enabled - Ensure shielded GKE nodes are enabled.
 - Ensure standard pricing tier is selected - Ensure standard pricing tier is selected.
 - Ensure storage account uses latest TLS version - Communication between an Azure Storage account and a client application is encrypted using Transport Layer Security (TLS). Microsoft recommends using the latest version of TLS for all your Microsoft Azure App Service web applications.
 - Ensure the GKE metadata server is enabled - Ensure the GKE metadata server is enabled.
 - Ensure the S3 bucket has access logging enabled - Ensure the S3 bucket has access logging enabled.
 - Ensure the storage container storing activity logs is not publicly accessible - Ensure the storage container storing activity logs is not publicly accessible.
 - Make ECR tags immutable - Amazon ECR supports immutable tags, preventing image tags from being overwritten. In the past, ECR tags could have been overwritten, this could be overcome by requiring users to uniquely identify an image using a naming convention.
 - Scan images pushed to ECR - ECR Image Scanning assesses and identifies operating system vulnerabilities. Using automated image scans you can ensure container image vulnerabilities are found before getting pushed to production.
 - Set Azure Storage Account default network access to deny - Ensure Azure Storage Account default network access is set to Deny.
 - Use HTTPS for Cloudfront distribution - Secure communication by default.
 
test
5 recipes
- Migrate Spring Boot 2.x projects to JUnit 5 from JUnit 4 - This recipe will migrate a Spring Boot application's tests from JUnit 4 to JUnit 5. This spring-specific migration includes conversion of Spring Test runners to Spring Test extensions and awareness of the composable Spring Test annotations.
 - Migrate xmlns entries in 
test-*.xmlfiles for Jakarta EE 9.1 using test interfaces - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation for test interfaces like arquillian. - Replace Derby test driver with Quarkus JDBC Derby (test scope) - Migrates 
org.apache.derby:derbywith test scope toio.quarkus:quarkus-jdbc-derbywith test scope - Replace H2 test driver with Quarkus JDBC H2 (test scope) - Migrates 
com.h2database:h2with test scope toio.quarkus:quarkus-jdbc-h2with test scope - Replace Spring Boot Test with Quarkus JUnit 5 - Migrates 
spring-boot-starter-testtoquarkus-junit5. 
testing
45 recipes
- Add 
org.hamcrest:hamcrestif it is used. - JUnit Jupiter does not include hamcrest as a transitive dependency. If needed, add a direct dependency. - AssertJ best practices - Migrates JUnit asserts to AssertJ and applies best practices to assertions.
 - Clean Up Assertions - Simplifies JUnit Jupiter assertions to their most-direct equivalents.
 - Cucumber to JUnit test 
@Suite- Migrates Cucumber tests to JUnit test@Suite. - JUnit 5 best practices - Applies best practices to tests.
 - JUnit 6 best practices - Applies best practices to tests.
 - JUnit 6 migration from JUnit 5.x - Migrates JUnit 5.x tests to JUnit 6.x.
 - JUnit Jupiter best practices - Applies best practices to tests.
 - JUnit Jupiter migration from JUnit 4.x - Migrates JUnit 4.x tests to JUnit Jupiter.
 - Migrate Fest 2.x to AssertJ - AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability. Converts Fest 2.x imports to AssertJ imports.
 - Migrate Google Truth to AssertJ - Migrate Google Truth assertions to AssertJ assertions.
 - Migrate Hamcrest assertions to AssertJ - Migrate Hamcrest 
assertThat(..)to AssertJAssertions. - Migrate Hamcrest assertions to JUnit Jupiter - Migrate Hamcrest 
assertThat(..)to JUnit JupiterAssertions. - Migrate JUnit asserts to AssertJ - AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability. Converts assertions from 
org.junit.jupiter.api.Assertionstoorg.assertj.core.api.Assertions. Will convert JUnit 4 to JUnit Jupiter if necessary to match and modify assertions. - Migrate TestNG assertions to AssertJ - Convert assertions from 
org.testng.Asserttoorg.assertj.core.api.Assertions. - Migrate 
cucumber-java8tocucumber-java- Migratescucumber-java8step definitions andLambdaGluehooks tocucumber-javaannotated methods. - Migrate from EasyMock to Mockito - This recipe will apply changes commonly needed when migrating from EasyMock to Mockito.
 - Migrate from JMockit to Mockito - This recipe will apply changes commonly needed when migrating from JMockit to Mockito.
 - Migrate rider-spring (JUnit4) to rider-junit5 (JUnit5) - This recipe will migrate the necessary dependencies and annotations from DbRider with JUnit4 to JUnit5 in a Spring application.
 - Mockito 3.x migration from 1.x - Upgrade Mockito from 1.x to 3.x.
 - Mockito 4 to 5.x upgrade only - Upgrade Mockito from 4.x to 5.x. Does not include 1.x to 4.x migration.
 - Mockito 4.x upgrade - Upgrade Mockito from 1.x to 4.x.
 - Mockito 5.x upgrade - Upgrade Mockito from 1.x to 5.x.
 - Mockito best practices - Applies best practices for Mockito tests.
 - Replace PowerMock with raw Mockito - PowerMockito with raw Mockito; best executed as part of a Mockito upgrade.
 - Shorten AssertJ assertions - Replace AssertJ assertions where a dedicated assertion is available for the same actual value.
 - Simplify AssertJ chained assertions - Replace AssertJ assertions where a method is called on the actual value with a dedicated assertion.
 - Statically import AssertJ's 
assertThat- Consistently use a static import rather than inlining theAssertionsclass name in tests. - Statically import JUnit Jupiter assertions - Always use a static import for assertion methods.
 - Testing best practices - Applies best practices to tests.
 - Upgrade to Cucumber-JVM 2.x - Upgrade to Cucumber-JVM 2.x from any previous version.
 - Upgrade to Cucumber-JVM 5.x - Upgrade to Cucumber-JVM 5.x from any previous version.
 - Upgrade to Cucumber-JVM 7.x - Upgrade to Cucumber-JVM 7.x from any previous version.
 - Upgrade to JUnit 5.14 - Upgrades JUnit 5 to 5.14.x and migrates all deprecated APIs.
 - Use Arquillian JUnit 5 Extension - Migrates Arquillian JUnit 4 to JUnit 5.
 - Use Byteman JUnit 5 dependency - Migrates Byteman JUnit 4 to JUnit 5.
 - Use JUnit Jupiter 
@Disabled- Migrates JUnit 4.x@Ignoreto JUnit Jupiter@Disabled. - Use JUnit Jupiter 
Executable- Migrates JUnit 4.xThrowingRunnableto JUnit JupiterExecutable. - Use Mockito JUnit Jupiter extension - Migrate uses of 
@RunWith(MockitoJUnitRunner.class)(and similar annotations) to@ExtendWith(MockitoExtension.class). - Use OkHttp 3 MockWebServer for JUnit 5 - Migrates OkHttp 3 
MockWebServerto enable JUnit Jupiter Extension support. - Use Vert.x JUnit 5 Extension - Migrates Vert.x 
@RunWithVertxUnitRunnerto the JUnit Jupiter@ExtendWithVertxExtension. - Use XMLUnit Legacy for JUnit 5 - Migrates XMLUnit 1.x to XMLUnit legacy 2.x.
 - Use 
Assertions#assume*(..)and Hamcrest'sMatcherAssume#assume*(..)- Many of JUnit 4'sAssume#assume(..)methods have no direct counterpart in JUnit 5 and require Hamcrest JUnit'sMatcherAssume. - Use 
MatcherAssert#assertThat(..)- JUnit 4'sAssert#assertThat(..)This method was deprecated in JUnit 4 and removed in JUnit Jupiter. - Use consistent Hamcrest matcher imports - Use consistent imports for Hamcrest matchers, and remove wrapping 
is(Matcher)calls ahead of further changes. 
testng
1 recipe
- Migrate TestNG assertions to AssertJ - Convert assertions from 
org.testng.Asserttoorg.assertj.core.api.Assertions. 
testwebxml
1 recipe
- Migrate xmlns entries in 
test-web.xmlfiles for Jakarta Server Faces 3 using test interfaces - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation for test interfaces like arquillian. 
thymeleaf
1 recipe
- Migrate thymeleaf dependencies to Spring Boot 3.x - Migrate thymeleaf dependencies to the new artifactId, since these are changed with Spring Boot 3.
 
tld
1 recipe
- Migrate xmlns entries in 
*.tldfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
tracing
1 recipe
- Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0 - Spring Cloud Sleuth has been discontinued and only compatible with Spring Boot 2.x.
 
transaction
2 recipes
- Migrate deprecated 
javax.transactionpackages tojakarta.transaction- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.transactionpackages tojakarta.transaction- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. 
truth
1 recipe
- Migrate Google Truth to AssertJ - Migrate Google Truth assertions to AssertJ assertions.
 
unaffected
1 recipe
- Mitigate Unaffected Non-EE Jakarta 9 Packages - Mitigate Unaffected Non-EE Jakarta 9 Packages. Reference: https://github.com/jakartaee/platform/blob/main/namespace/unaffected-packages.adoc
 
underscore
4 recipes
- Replace lodash and underscore array functions with native JavaScript - - 
_.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 - - 
_.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 - - 
_.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) - Replace lodash and underscore utility functions with native JavaScript - - 
_.isArray(x)->Array.isArray(x)-_.isBoolean(x)->typeof(x) === 'boolean'-_.isFinite(x)->Number.isFinite(x)-_.isFunction(x)->typeof(x) === 'function'-_.isNull(x)->x === null-_.isString(x)->typeof(x) === 'string'-_.isUndefined(x)->typeof(x) === 'undefined' 
validation
4 recipes
- Migrate deprecated 
javax.validationpackages tojakarta.validation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated 
javax.validationpackages tojakarta.validation- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate xmlns entries in 
**/validation/*.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Replace Spring Boot Validation with Quarkus Hibernate Validator - Migrates 
spring-boot-starter-validationtoquarkus-hibernate-validator. 
var
1 recipe
- Use local variable type inference - 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. 
virtual
2 recipes
- Find Virtual Thread opportunities - Find opportunities to convert existing code to use Virtual Threads.
 - Find non-virtual 
ExecutorServicecreation - Find all places where staticjava.util.concurrent.Executorsmethod creates a non-virtualjava.util.concurrent.ExecutorService. This recipe can be used to search froExecutorServicethat can be replaced by Virtual Thread executor. 
vue
57 recipes
- Disallow or enforce spaces inside of blocks after opening block and before closing block in 
<template>- Disallow or enforce spaces inside of blocks after opening block and before closing block in<template>See rule details for vue/block-spacing - Disallow unnecessary mustache interpolations - Disallow unnecessary mustache interpolations See rule details for vue/no-useless-mustaches
 - Disallow unnecessary parentheses in 
<template>- Disallow unnecessary parentheses in<template>See rule details for vue/no-extra-parens - Disallow unnecessary v-bind directives - Disallow unnecessary v-bind directives See rule details for vue/no-useless-v-bind
 - Disallow unsupported Vue.js syntax on the specified version - Disallow unsupported Vue.js syntax on the specified version See rule details for vue/no-unsupported-features
 - Disallow usage of this in template - Disallow usage of this in template See rule details for vue/this-in-template
 - Enforce Promise or callback style in nextTick - Enforce Promise or callback style in nextTick See rule details for vue/next-tick-style
 - Enforce consistent brace style for blocks in 
<template>- Enforce consistent brace style for blocks in<template>See rule details for vue/brace-style - Enforce consistent comma style in 
<template>- Enforce consistent comma style in<template>See rule details for vue/comma-style - Enforce consistent indentation in HTML comments - Enforce consistent indentation in HTML comments See rule details for vue/html-comment-indent
 - Enforce consistent indentation in 
<script>- Enforce consistent indentation in<script>See rule details for vue/script-indent - Enforce consistent line breaks after opening and before closing braces in 
<template>- Enforce consistent line breaks after opening and before closing braces in<template>See rule details for vue/object-curly-newline - Enforce consistent linebreak style for operators in 
<template>- Enforce consistent linebreak style for operators in<template>See rule details for vue/operator-linebreak - Enforce consistent newlines before and after dots in 
<template>- Enforce consistent newlines before and after dots in<template>See rule details for vue/dot-location - Enforce consistent spacing before and after commas in 
<template>- Enforce consistent spacing before and after commas in<template>See rule details for vue/comma-spacing - Enforce consistent spacing before and after keywords in 
<template>- Enforce consistent spacing before and after keywords in<template>See rule details for vue/keyword-spacing - Enforce consistent spacing before and after the arrow in arrow functions in 
<template>- Enforce consistent spacing before and after the arrow in arrow functions in<template>See rule details for vue/arrow-spacing - Enforce consistent spacing before or after unary operators in 
<template>- Enforce consistent spacing before or after unary operators in<template>See rule details for vue/space-unary-ops - Enforce consistent spacing between keys and values in object literal properties in 
<template>- Enforce consistent spacing between keys and values in object literal properties in<template>See rule details for vue/key-spacing - Enforce consistent spacing inside array brackets in 
<template>- Enforce consistent spacing inside array brackets in<template>See rule details for vue/array-bracket-spacing - Enforce consistent spacing inside braces in 
<template>- Enforce consistent spacing inside braces in<template>See rule details for vue/object-curly-spacing - Enforce consistent spacing inside parentheses in 
<template>- Enforce consistent spacing inside parentheses in<template>See rule details for vue/space-in-parens - Enforce dot notation whenever possible in 
<template>- Enforce dot notation whenever possible in<template>See rule details for vue/dot-notation - Enforce line breaks after each array element in 
<template>- Enforce line breaks after each array element in<template>See rule details for vue/array-element-newline - Enforce line breaks after opening and before closing block-level tags - Enforce line breaks after opening and before closing block-level tags See rule details for vue/block-tag-newline
 - Enforce linebreaks after opening and before closing array brackets in 
<template>- Enforce linebreaks after opening and before closing array brackets in<template>See rule details for vue/array-bracket-newline - Enforce new lines between multi-line properties in Vue components - Enforce new lines between multi-line properties in Vue components See rule details for vue/new-line-between-multi-line-property
 - Enforce newlines between operands of ternary expressions in 
<template>- Enforce newlines between operands of ternary expressions in<template>See rule details for vue/multiline-ternary - Enforce order of attributes - Enforce order of attributes See rule details for vue/attributes-order
 - Enforce order of component top-level elements - Enforce order of component top-level elements See rule details for vue/block-order
 - Enforce order of component top-level elements - Enforce order of component top-level elements See rule details for vue/component-tags-order
 - Enforce order of defineEmits and defineProps compiler macros - Enforce order of defineEmits and defineProps compiler macros See rule details for vue/define-macros-order
 - Enforce order of properties in components - Enforce order of properties in components See rule details for vue/order-in-components
 - Enforce placing object properties on separate lines in 
<template>- Enforce placing object properties on separate lines in<template>See rule details for vue/object-property-newline - Enforce props with default values to be optional - Enforce props with default values to be optional See rule details for vue/no-required-prop-with-default
 - Enforce specific casing for the component naming style in template - Enforce specific casing for the component naming style in template See rule details for vue/component-name-in-template-casing
 - Enforce static class names order - Enforce static class names order See rule details for vue/static-class-names-order
 - Enforce the casing of component name in components options - Enforce the casing of component name in components options See rule details for vue/component-options-name-casing
 - Enforce unified line brake in HTML comments - Enforce unified line brake in HTML comments See rule details for vue/html-comment-content-newline
 - Enforce unified spacing in HTML comments - Enforce unified spacing in HTML comments See rule details for vue/html-comment-content-spacing
 - Enforce use of defineOptions instead of default export. - Enforce use of defineOptions instead of default export. See rule details for vue/prefer-define-options
 - Enforce v-for directive's delimiter style - Enforce v-for directive's delimiter style See rule details for vue/v-for-delimiter-style
 - Enforce writing style for handlers in v-on directives - Enforce writing style for handlers in v-on directives See rule details for vue/v-on-handler-style
 - Recommended vue code cleanup - Collection of cleanup ESLint rules from eslint-plugin-vue.
 - Require key attribute for conditionally rendered repeated components - Require key attribute for conditionally rendered repeated components See rule details for vue/v-if-else-key
 - Require or disallow method and property shorthand syntax for object literals in 
<template>- Require or disallow method and property shorthand syntax for object literals in<template>See rule details for vue/object-shorthand - Require or disallow newlines between sibling tags in template - Require or disallow newlines between sibling tags in template See rule details for vue/padding-line-between-tags
 - Require or disallow padding lines between blocks - Require or disallow padding lines between blocks See rule details for vue/padding-line-between-blocks
 - Require or disallow padding lines in component definition - Require or disallow padding lines in component definition See rule details for vue/padding-lines-in-component-definition
 - Require or disallow spacing around embedded expressions of template strings in 
<template>- Require or disallow spacing around embedded expressions of template strings in<template>See rule details for vue/template-curly-spacing - Require or disallow spacing between function identifiers and their invocations in 
<template>- Require or disallow spacing between function identifiers and their invocations in<template>See rule details for vue/func-call-spacing - Require or disallow trailing commas in 
<template>- Require or disallow trailing commas in<template>See rule details for vue/comma-dangle - Require quotes around object literal property names in 
<template>- Require quotes around object literal property names in<template>See rule details for vue/quote-props - Require spacing around infix operators in 
<template>- Require spacing around infix operators in<template>See rule details for vue/space-infix-ops - Require static class names in template to be in a separate class attribute - Require static class names in template to be in a separate class attribute See rule details for vue/prefer-separate-static-class
 - Require template literals instead of string concatenation in 
<template>- Require template literals instead of string concatenation in<template>See rule details for vue/prefer-template - Require the use of === and !== in 
<template>- Require the use of === and !== in<template>See rule details for vue/eqeqeq 
web
9 recipes
- Add 
prefer-application-packagesfor JPA inweblogic.xml- This recipe will add aprefer-application-packagesentry for Jakarta Persistence inweblogic.xmlif it does not already exist. - Add 
prefer-application-packagesfor SLF4J inweblogic.xml- This recipe will add aprefer-application-packagesentry for SLF4J inweblogic.xmlif it does not already exist. - Create 
weblogic.xmlif it does not exist - This recipe will create aweblogic.xmlfile with the WebLogic 15.1.1 namespace if it does not already exist. - Migrate javax.javaee-web-api to jakarta.jakartaee-web-api (Jakarta EE 9) - Update Java EE Web API dependency to Jakarta EE Web Profile API 9.1
 - Migrate xmlns entries in 
web-fragment.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in 
weblogic.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic.xmlfiles to WebLogic 15.1.1 - Replace Spring Boot Web with Quarkus REST - Migrates 
spring-boot-starter-webtoquarkus-rest-jacksonwhen reactor dependencies are present. - Replace Spring Boot Web with Quarkus RESTEasy Classic - Migrates 
spring-boot-starter-webtoquarkus-resteasy-jacksonwhen no reactor dependencies are present. 
webflux
1 recipe
- Replace Spring Boot WebFlux with Quarkus REST Client - Migrates 
spring-boot-starter-webfluxtoquarkus-rest-client-jacksonwhen reactor dependencies are present. 
weblogic
56 recipes
- Add WebLogic 15.1.1 PetClinic extras - Run migration extras for migrated Spring Framework PetClinic example run on WebLogic 15.1.1.
 - Add 
prefer-application-packagesfor JPA inweblogic.xml- This recipe will add aprefer-application-packagesentry for Jakarta Persistence inweblogic.xmlif it does not already exist. - Add 
prefer-application-packagesfor SLF4J inweblogic.xml- This recipe will add aprefer-application-packagesentry for SLF4J inweblogic.xmlif it does not already exist. - Add implicit TLD with taglib 2.1 - Add 
implicit.tldfile with taglib 2.1 tosrc/main/webapp/WEB-INF/tags. - Add implicit TLD with taglib 3.0 - Add 
implicit.tldfile with taglib 3.0 tosrc/main/webapp/WEB-INF/tags. - Change the jakarta.inject-api dependency to scope provided when jakartaee-api 9.x is provided. - This recipe will change the jakarta.inject-api dependency scope to provided when jakarta.jakartaee-api version 9.x is provided in WebLogic 15.1.1. This prevents the jakarta.inject-api jar from being deployed to WebLogic which can cause class conflicts.
 - Change the jakarta.ws.rs-api dependency to scope provided when jakartaee-api 9.x is provided. - This recipe will change the jakarta.ws.rs-api dependency scope to provided when jakarta.jakartaee-api version 9.x is provided in WebLogic 15.1.1. This prevents the jakarta.ws.rs-api jar from being deployed to WebLogic which can cause class conflicts.
 - Change the jakarta.xml.bind-api dependency to scope provided when jakartaee-api 9.x is provided. - This recipe will change the jakarta.xml.bind-api dependency scope to provided when jakarta.jakartaee-api version 9.x is provided in WebLogic 15.1.1. This prevents the jakarta.xml.bind-api jar from being deployed to WebLogic which can cause class conflicts.
 - Create 
weblogic.xmlif it does not exist - This recipe will create aweblogic.xmlfile with the WebLogic 15.1.1 namespace if it does not already exist. - Migrate WebLogic Schemas to 14.1.2 - This recipe will migrate WebLogic schemas to 14.1.2
 - Migrate WebLogic Schemas to 15.1.1 - This recipe will migrate WebLogic schemas to 15.1.1
 - Migrate from JavaX to Jakarta EE 9.1 Namespaces - These recipes help with Migration From JavaX to Jakarta EE 9.1 Namespaces.
 - Migrate to Jakarta EE 9.1 - These recipes help with Migration to Jakarta EE 9.1, flagging and updating deprecated methods.
 - Migrate to Spring Framework 6.2 for WebLogic 15.1.1 - Migrate applications to the Spring Framework 6.2 release and compatibility with WebLogic 15.1.1.
 - Migrate to WebLogic 14.1.1 - This recipe will apply changes required for migrating to WebLogic 14.1.1
 - Migrate to WebLogic 14.1.2 - This recipe will apply changes required for migrating to WebLogic 14.1.2
 - Migrate to WebLogic 15.1.1 - This recipe will apply changes required for migrating to WebLogic 15.1.1 and Jakarta EE 9.1
 - Migrate xmlns entries in 
*-jdbc.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JDBC schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
*-jdbc.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries in*-jdbc.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
*-jms.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
*-jms.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries in*-jms.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
application-client.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application Client schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
application-client.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inapplication-client.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 Persistence Configuration schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
persistence-configuration.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inpersistence-configuration.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
plan.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
plan.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inplan.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
resource-deployment-plan.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Deployment Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
resource-deployment-plan.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inresource-deployment-plan.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-application.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-application.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-application.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-ejb-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ejb-jar.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ejb-jar.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-pubsub.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic PubSub schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-pubsub.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-pubsub.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Resource Adapter schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-ra.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-ra.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 RDBMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-rdbms-jar.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-rdbms-jar.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-webservices-policy.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Web Service Policy Reference schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-webservices-policy.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-webservices-policy.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-webservices.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Web Services schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-webservices.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-webservices.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic WSEE Client Handler Chains schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-wsee-standaloneclient.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic WSEE Standalone Client schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-wsee-standaloneclient.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-wsee-standaloneclient.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic.xmlfiles to WebLogic 15.1.1 - Mitigation of Java XML Bind Deprecation in Java 11 vs WebLogic 14.1.2 - This recipe will mitigate the Javax XML Bind deprecation in Java 11 vs WebLogic 14.1.2
 - Replace Removed WebLogicJtaTransactionManager from Spring Framework 5.3.x to 6.2.x - Replace removed WebLogicJtaTransactionManager with JtaTransactionManager from Spring Framework 6.2.x.
 - Replace Removed WebLogicLoadTimeWeaver from Spring Framework 5.3.x to 6.2.x - Replace removed WebLogicLoadTimeWeaver with LoadTimeWeaver from Spring Framework 6.2.x.
 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2 - Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2.
 - Update Default Servlet Handler for Spring Framework if empty - This recipe will update Spring Framework default servlet handler if empty, as noted in the Spring Framework 6.2 documentation.
 - Update Jakarta Persistence to 3.1 - Update Jakarta Persistence to 3.1.
 - Update Jakarta Persistence to 3.2 - Update Jakarta Persistence to 3.2.
 
webservices
5 recipes
- Migrate xmlns entries in 
weblogic-webservices-policy.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Web Service Policy Reference schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-webservices-policy.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-webservices-policy.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-webservices.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Web Services schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-webservices.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-webservices.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
webservices.xmlfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
websocket
1 recipe
- Replace Spring Boot WebSocket with Quarkus WebSockets - Migrates 
spring-boot-starter-websockettoquarkus-websockets. 
webxml
1 recipe
- Migrate xmlns entries in 
web.xmlfiles for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
wsee
4 recipes
- Migrate xmlns entries in 
weblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic WSEE Client Handler Chains schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-wsee-clientHandlerChain.xmlfiles to WebLogic 15.1.1 - Migrate xmlns entries in 
weblogic-wsee-standaloneclient.xmlfiles to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic WSEE Standalone Client schema files to WebLogic 14.1.2 - Migrate xmlns entries in 
weblogic-wsee-standaloneclient.xmlfiles to WebLogic 15.1.1 - This recipe will update thexmlnsentries inweblogic-wsee-standaloneclient.xmlfiles to WebLogic 15.1.1 
xhtml
1 recipe
- Faces XHTML migration for Jakarta EE 9 - Find and replace legacy JSF namespaces and javax references with Jakarta Faces values in XHTML files.
 
xjb
1 recipe
- Migrate xmlns entries in 
*.xjbfiles. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. 
xmlunit
1 recipe
- Use XMLUnit Legacy for JUnit 5 - Migrates XMLUnit 1.x to XMLUnit legacy 2.x.