Recipes by Tag
This doc contains all recipe tags and the recipes that are tagged with them.
Total tags: 463
5to6
7 recipes
- Convert
var
tolet
- Convertvar
tolet
- 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
return
statement with simple arrow - Replace all function expressions with onlyreturn
statement with simple arrow function. - Transform AMD style
define()
calls to ES6import
statements - Transform AMD styledefine()
calls to ES6import
statements - Transform CommonJS style
require()
calls to ES6import
statements - Transform CommonJS stylerequire()
calls to ES6import
statements - Upgrade ECMAScript 5 to ECMAScript 6 - A collection of common ECMAScript 5 to ECMAScript 6 updates.
activation
2 recipes
- Migrate deprecated
javax.activation
packages tojakarta.activation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.activation
packages tojakarta.activation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
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.
annotation
3 recipes
- Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation
tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation
tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
annotations
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.
apache
16 recipes
- Migrate from httpcore-nio to ApacheHttpClient 5.x core dependency - Adopt
org.apache.httpcomponents.core5:httpcore5
fromorg.apache.httpcomponents:httpcore-nio
- Migrate from org.apache.httpcomponents to ApacheHttpClient 5.x dependencies - Adopt
org.apache.httpcomponents.client5:httpclient5
fromorg.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.StandardCharsets
over third-party usage of apache'sorg.apache.commons.io.Charsets
. - Prefer
java.nio.charset.StandardCharsets
- Prefer the Java standard library'sjava.nio.charset.StandardCharsets
overorg.apache.commons.lang3.CharEncoding
. - Prefer
java.nio.file.Files
- Prefer the Java standard library'sjava.nio.file.Files
over third-party usage of apache'sapache.commons.io.FileUtils
. - Prefer
java.util.Base64
- Prefer the Java standard library'sjava.util.Base64
over third-party usage of apache'sapache.commons.codec.binary.Base64
. - Relocate
org.apache.commons:commons-io
tocommons-io:commons-io
- The deployment oforg.apache.commons:commons-io
was 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
IOUtils
method 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
3 recipes
- Migrate xmlns entries in
application.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
weblogic-application.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic-application.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-application.xml
files to WebLogic 15.1.1
application-client
3 recipes
- Migrate xmlns entries in
application-client.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inapplication-client.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
application-client.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
arquillian
1 recipe
- Use Arquillian JUnit 5 Extension - Migrates Arquillian JUnit 4 to JUnit 5.
assertj
10 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 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.Assertions
toorg.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.Assert
toorg.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 theAssertions
class 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.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
authorization
2 recipes
- Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
AWS
54 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
EnforceHTTPS
enabled - Ensure AWS Elasticsearch domains haveEnforceHTTPS
enabled. - 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.
- Migrate from the AWS SDK for Java v1 to the AWS SDK for Java v2 including S3 Transfer Manager. - This recipe will apply changes required for migrating from the AWS SDK for Java v1 to the AWS SDK for Java v2, including S3 Transfer Manager. Transforms for Transfer Manager are incomplete and in-progress.
- 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_type
set - Ensure key vault secrets havecontent_type
set. - 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
7 recipes
- Migrate deprecated
javax.annotation.security
packages tojakarta.annotation.security
- Change type of classes in thejavax.annotation.security
package to jakarta. - Migrate deprecated
javax.annotation.sql
packages tojakarta.annotation.sql
- Change type of classes in thejavax.annotation.sql
package to jakarta. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. Excludesjavax.annotation.processing
. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Change type of classes in thejavax.annotation
package to jakarta. - Migrate deprecated
javax.batch
packages tojakarta.batch
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.batch
packages 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.
batchXML
1 recipe
- Migrate xmlns entries in
batch.xml
files. - 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.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
beans
2 recipes
- Migrate xmlns entries in
beans.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
beans.xml
files 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
*.xjb
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
boot
46 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-jetty
as a first-order dependency and will add the maven propertyjakarta-servlet.version
setting it's value to5.0.0
. This will downgrade thejakarta-servlet
artifact 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
message
attribute in the default error view was removed rather than blanked when it is not shown.spring-webmvc
orspring-webflux
projects that parse the error response JSON may need to deal with the missing item (release notes). You can still use theserver.error.include-message
property if you want messages to be included. - Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from
cf-java-logging-support-servlet
tocf-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 Management Endpoint Security properties to 3.4 - Migrate the settings for Management Endpoint Security from
true
|false
toread-only
|none
. - Migrate Spring Boot properties to 2.0 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.1 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.2 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.3 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.4 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.5 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.6 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.7 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.0 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.1 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.2 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.3 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.4 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.5 - Migrate properties found in
application.properties
andapplication.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 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.
- Remove the deprecated properties
additional-keys-to-sanitize
from theconfigprops
andenv
end 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-size
toserver.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
. - 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.
- 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
applicationTaskExecutor
instead 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@Resource
annotation is used.
bouncycastle
2 recipes
- Migrate Bouncy Castle from
jdk15on
tojdk15to18
for Java < 8 - This recipe replaces the Bouncy Castle artifacts fromjdk15on
tojdk15to18
.jdk15on
isn't maintained anymore andjdk18on
is only for Java 8 and above. Thejdk15to18
artifact is the up-to-date replacement of the unmaintainedjdk15on
for Java < 8. - Migrate Bouncy Castle to
jdk18on
- This recipe will upgrade Bouncy Castle dependencies from-jdk15on
or-jdk15to18
to-jdk18on
.
cacheManager
1 recipe
- Change cacheManager to use the SimpleCacheManager - Change cacheManager to use the SimpleCacheManager.
cdi
2 recipes
- Migrate xmlns entries in
beans.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
beans.xml
files for Beans 3.0. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
CKV2_AZURE_8
1 recipe
- Ensure the storage container storing activity logs is not publicly accessible - Ensure the storage container storing activity logs is not publicly accessible.
CKV_AWS_10
1 recipe
- Ensure AWS IAM password policy has a minimum of 14 characters - Ensure AWS IAM password policy has a minimum of 14 characters.
CKV_AWS_11
1 recipe
- Ensure IAM password policy requires at least one lowercase letter - Ensure IAM password policy requires at least one lowercase letter.
CKV_AWS_115
1 recipe
- Ensure AWS Lambda function is configured for function-level concurrent execution limit - Ensure AWS Lambda function is configured for function-level concurrent execution limit.
CKV_AWS_118
1 recipe
- Ensure enhanced monitoring for Amazon RDS instances is enabled - Ensure enhanced monitoring for Amazon RDS instances is enabled.
CKV_AWS_12
1 recipe
- Ensure IAM password policy requires at least one number - Ensure IAM password policy requires at least one number.
CKV_AWS_120
1 recipe
- Enable API gateway caching - Enable caching for all methods of API Gateway.
CKV_AWS_126
1 recipe
- Ensure detailed monitoring for EC2 instances is enabled - Ensure detailed monitoring for EC2 instances is enabled.
CKV_AWS_129
1 recipe
- Ensure respective logs of Amazon RDS are enabled - Ensure respective logs of Amazon RDS are enabled.
CKV_AWS_13
1 recipe
- Ensure IAM password policy prevents password reuse - Ensure IAM password policy prevents password reuse.
CKV_AWS_130
1 recipe
- Ensure VPC subnets do not assign public IP by default - Ensure VPC subnets do not assign public IP by default.
CKV_AWS_135
1 recipe
- Ensure EC2 is EBS optimized - Ensure EC2 is EBS optimized.
CKV_AWS_136
1 recipe
- Ensure ECR repositories are encrypted - Ensure ECR repositories are encrypted.
CKV_AWS_14
1 recipe
- Ensure IAM password policy requires at least one symbol - Ensure IAM password policy requires at least one symbol.
CKV_AWS_147
1 recipe
- 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.
CKV_AWS_15
1 recipe
- Ensure IAM password policy requires at least one uppercase letter - Ensure IAM password policy requires at least one uppercase letter.
CKV_AWS_157
1 recipe
- Ensure RDS instances have Multi-AZ enabled - Ensure RDS instances have Multi-AZ enabled.
CKV_AWS_16
1 recipe
- Encrypt RDS clusters - Native RDS encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
CKV_AWS_161
1 recipe
- Ensure RDS database has IAM authentication enabled - Ensure RDS database has IAM authentication enabled.
CKV_AWS_17
1 recipe
- Ensure AWS RDS database instance is not publicly accessible - Ensure AWS RDS database instance is not publicly accessible.
CKV_AWS_18
1 recipe
- Ensure the S3 bucket has access logging enabled - Ensure the S3 bucket has access logging enabled.
CKV_AWS_19
1 recipe
- Ensure data stored in an S3 bucket is securely encrypted at rest - Ensure data stored in an S3 bucket is securely encrypted at rest.
CKV_AWS_21
1 recipe
- Ensure AWS S3 object versioning is enabled - Ensure AWS S3 object versioning is enabled.
CKV_AWS_28
1 recipe
- 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.
CKV_AWS_29
1 recipe
- Encrypt ElastiCache Redis at rest - ElastiCache for Redis offers default encryption at rest as a service.
CKV_AWS_3
1 recipe
- 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.
CKV_AWS_30
1 recipe
- 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.
CKV_AWS_33
1 recipe
- 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.
CKV_AWS_34
1 recipe
- Use HTTPS for Cloudfront distribution - Secure communication by default.
CKV_AWS_36
1 recipe
- Ensure CloudTrail log file validation is enabled - Ensure CloudTrail log file validation is enabled.
CKV_AWS_37
1 recipe
- Ensure Amazon EKS control plane logging enabled for all log types - Ensure Amazon EKS control plane logging enabled for all log types.
CKV_AWS_39
1 recipe
- Ensure AWS EKS cluster endpoint access is publicly disabled - Ensure AWS EKS cluster endpoint access is publicly disabled.
CKV_AWS_4
1 recipe
- Encrypt EBS snapshots - EBS snapshots should be encrypted, as they often include sensitive information, customer PII or CPNI.
CKV_AWS_42
1 recipe
- Ensure AWS EFS with encryption for data at rest is enabled - Ensure AWS EFS with encryption for data at rest is enabled.
CKV_AWS_43
1 recipe
- Ensure Kinesis Stream is securely encrypted - Ensure Kinesis Stream is securely encrypted.
CKV_AWS_44
1 recipe
- Encrypt Neptune storage - Encryption of Neptune storage protects data and metadata against unauthorized access.
CKV_AWS_47
1 recipe
- 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.
CKV_AWS_5
1 recipe
- Ensure AWS Elasticsearch domain encryption for data at rest is enabled - Ensure AWS Elasticsearch domain encryption for data at rest is enabled.
CKV_AWS_50
1 recipe
- Ensure AWS Lambda functions have tracing enabled - Ensure AWS Lambda functions have tracing enabled.
CKV_AWS_51
1 recipe
- 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.
CKV_AWS_6
1 recipe
- Ensure AWS Elasticsearch has node-to-node encryption enabled - Ensure AWS Elasticsearch has node-to-node encryption enabled.
CKV_AWS_64
1 recipe
- Encrypt Redshift storage at rest - Redshift clusters should be securely encrypted at rest.
CKV_AWS_7
1 recipe
- Ensure AWS CMK rotation is enabled - Ensure AWS CMK rotation is enabled.
CKV_AWS_74
1 recipe
- 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.
CKV_AWS_79
1 recipe
- Disable Instance Metadata Service version 1 - As a request/response method IMDSv1 is prone to local misconfigurations.
CKV_AWS_8
1 recipe
- 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.
CKV_AWS_83
1 recipe
- Ensure AWS Elasticsearch domains have
EnforceHTTPS
enabled - Ensure AWS Elasticsearch domains haveEnforceHTTPS
enabled.
CKV_AWS_9
1 recipe
- Ensure IAM password policy expires passwords within 90 days or less - Ensure IAM password policy expires passwords within 90 days or less.
CKV_AWS_96
1 recipe
- Encrypt Aurora clusters - Native Aurora encryption helps protect your cloud applications and fulfils compliance requirements for data-at-rest encryption.
CKV_AWS_97
1 recipe
- Encrypt EFS Volumes in ECS Task Definitions in transit - Enable attached EFS definitions in ECS tasks to use encryption in transit.
CKV_AZURE_102
1 recipe
- Enable geo-redundant backups on PostgreSQL server - Ensure PostgreSQL server enables geo-redundant backups.
CKV_AZURE_109
1 recipe
- Ensure key vault allows firewall rules settings - Ensure key vault allows firewall rules settings.
CKV_AZURE_110
1 recipe
- Ensure key vault enables purge protection - Ensure key vault enables purge protection.
CKV_AZURE_112
1 recipe
- Ensure key vault key is backed by HSM - Ensure key vault key is backed by HSM.
CKV_AZURE_114
1 recipe
- Ensure key vault secrets have
content_type
set - Ensure key vault secrets havecontent_type
set.
CKV_AZURE_116
1 recipe
- 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.
CKV_AZURE_12
1 recipe
- 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.
CKV_AZURE_120
1 recipe
- Ensure Azure application gateway has WAF enabled - Ensure Azure application gateway has WAF enabled.
CKV_AZURE_127
1 recipe
- Ensure MySQL server enables Threat Detection policy - Ensure MySQL server enables Threat Detection policy.
CKV_AZURE_128
1 recipe
- Ensure PostgreSQL server enables Threat Detection policy - Ensure PostgreSQL server enables Threat Detection policy.
CKV_AZURE_130
1 recipe
- Ensure PostgreSQL server enables infrastructure encryption - Ensure PostgreSQL server enables infrastructure encryption.
CKV_AZURE_14
1 recipe
- Ensure Azure App Service Web app redirects HTTP to HTTPS - Ensure Azure App Service Web app redirects HTTP to HTTPS.
CKV_AZURE_15
1 recipe
- Ensure Web App uses the latest version of TLS encryption - Ensure Web App uses the latest version of TLS encryption.
CKV_AZURE_17
1 recipe
- Ensure Web App has incoming client certificates enabled - Ensure Web App has incoming client certificates enabled.
CKV_AZURE_18
1 recipe
- Ensure Web App uses the latest version of HTTP - Ensure Web App uses the latest version of HTTP.
CKV_AZURE_19
1 recipe
- Ensure standard pricing tier is selected - Ensure standard pricing tier is selected.
CKV_AZURE_2
1 recipe
- Encrypt Azure VM data disk with ADE/CMK - Ensure Azure VM data disk is encrypted with ADE/CMK.
CKV_AZURE_20
1 recipe
- Ensure a security contact phone number is present - Ensure a security contact phone number is present.
CKV_AZURE_21
1 recipe
- Ensure Send email notification for high severity alerts is enabled - Ensure Send email notification for high severity alerts is enabled.
CKV_AZURE_22
1 recipe
- Ensure Send email notification for high severity alerts to admins is enabled - Ensure Send email notification for high severity alerts to admins is enabled.
CKV_AZURE_24
1 recipe
- Ensure Azure SQL server audit log retention is greater than 90 days - Ensure Azure SQL server audit log retention is greater than 90 days.
CKV_AZURE_25
1 recipe
- 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.
CKV_AZURE_26
1 recipe
- Ensure Azure SQL server send alerts to field value is set - Ensure Azure SQL server send alerts to field value is set.
CKV_AZURE_27
1 recipe
- Ensure MSSQL servers have email service and co-administrators enabled - Ensure MSSQL servers have email service and co-administrators enabled.
CKV_AZURE_28
1 recipe
- Ensure MySQL server databases have Enforce SSL connection enabled - Ensure MySQL server databases have Enforce SSL connection enabled.
CKV_AZURE_29
1 recipe
- Ensure Azure PostgreSQL database server with SSL connection is enabled - Ensure Azure PostgreSQL database server with SSL connection is enabled.
CKV_AZURE_3
1 recipe
- Enable Azure Storage secure transfer required - Microsoft recommends requiring secure transfer for all storage accounts.
CKV_AZURE_35
1 recipe
- Set Azure Storage Account default network access to deny - Ensure Azure Storage Account default network access is set to Deny.
CKV_AZURE_36
1 recipe
- 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.
CKV_AZURE_37
1 recipe
- Ensure activity log retention is set to 365 days or greater - Ensure activity log retention is set to 365 days or greater.
CKV_AZURE_38
1 recipe
- Ensure log profile is configured to capture all activities - Ensure log profile is configured to capture all activities.
CKV_AZURE_40
1 recipe
- Ensure all keys have an expiration date - Ensure all keys have an expiration date.
CKV_AZURE_41
1 recipe
- Ensure AKV secrets have an expiration date set - Ensure AKV secrets have an expiration date set.
CKV_AZURE_42
1 recipe
- Ensure Azure key vault is recoverable - Ensure Azure key vault is recoverable.
CKV_AZURE_44
1 recipe
- 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.
CKV_AZURE_53
1 recipe
- Ensure public network access enabled is set to False for mySQL servers - Ensure public network access enabled is set to False for mySQL servers.
CKV_AZURE_54
1 recipe
- Ensure MySQL is using the latest version of TLS encryption - Ensure MySQL is using the latest version of TLS encryption.
CKV_AZURE_63
1 recipe
- Ensure app service enables HTTP logging - Ensure app service enables HTTP logging.
CKV_AZURE_65
1 recipe
- Ensure app service enables detailed error messages - Ensure app service enables detailed error messages.
CKV_AZURE_66
1 recipe
- Ensure app service enables failed request tracing - Ensure app service enables failed request tracing.
CKV_AZURE_68
1 recipe
- Ensure PostgreSQL server disables public network access - Ensure PostgreSQL server disables public network access.
CKV_AZURE_71
1 recipe
- Ensure managed identity provider is enabled for app services - Ensure managed identity provider is enabled for app services.
CKV_AZURE_78
1 recipe
- Ensure FTP Deployments are disabled - Ensure FTP Deployments are disabled.
CKV_AZURE_8
1 recipe
- 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.
CKV_AZURE_88
1 recipe
- Ensure app services use Azure files - Ensure app services use Azure files.
CKV_AZURE_90
1 recipe
- Ensure MySQL server disables public network access - Ensure MySQL server disables public network access.
CKV_AZURE_94
1 recipe
- Ensure MySQL server enables geo-redundant backups - Ensure MySQL server enables geo-redundant backups.
CKV_GCP_24
1 recipe
- Enable
PodSecurityPolicy
controller on Google Kubernetes Engine (GKE) clusters - EnsurePodSecurityPolicy
controller is enabled on Google Kubernetes Engine (GKE) clusters.
CKV_GCP_25
1 recipe
- Ensure private cluster is enabled when creating Kubernetes clusters - Ensure private cluster is enabled when creating Kubernetes clusters.
CKV_GCP_26
1 recipe
- 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.
CKV_GCP_29
1 recipe
- Ensure GCP cloud storage bucket with uniform bucket-level access are enabled - Ensure GCP cloud storage bucket with uniform bucket-level access are enabled.
CKV_GCP_32
1 recipe
- Ensure GCP VM instances have block project-wide SSH keys feature enabled - Ensure GCP VM instances have block project-wide SSH keys feature enabled.
CKV_GCP_36
1 recipe
- Ensure IP forwarding on instances is disabled - Ensure IP forwarding on instances is disabled.
CKV_GCP_39
1 recipe
- Ensure compute instances launch with shielded VM enabled - Ensure compute instances launch with shielded VM enabled.
CKV_GCP_61
1 recipe
- Enable VPC flow logs and intranode visibility - Enable VPC flow logs and intranode visibility.
CKV_GCP_66
1 recipe
- Ensure binary authorization is used - Ensure binary authorization is used.
CKV_GCP_67
1 recipe
- Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled - Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled.
CKV_GCP_68
1 recipe
- Ensure secure boot for shielded GKE nodes is enabled - Ensure secure boot for shielded GKE nodes is enabled.
CKV_GCP_69
1 recipe
- Ensure the GKE metadata server is enabled - Ensure the GKE metadata server is enabled.
CKV_GCP_71
1 recipe
- Ensure shielded GKE nodes are enabled - Ensure shielded GKE nodes are enabled.
CKV_GCP_9
1 recipe
- Ensure GCP Kubernetes cluster node auto-repair configuration is enabled - Ensure GCP Kubernetes cluster node auto-repair configuration is enabled.
cloud
15 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 Spring Cloud properties to 2020 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2021 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2022 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2023 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2024 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2025 - Migrate properties found in
application.properties
andapplication.yml
. - 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-servlet
tocf-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
React
to include the import in order for the new React JSX transform to work. - Adds
DefaultTheme
module 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
var
tolet
- Convertvar
tolet
- 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
rootRef
toref
- See Material UI codemod projects for more details. - Converts
sx
prop tosx
style prop - See Material UI codemod projects for more details. - Converts all
@mui/material
submodule 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-eslint
plugin and the correspondingplugin:@typescript-eslint/recommended
extend. - Migrate
ImageResponse
imports - This codemod moves transforms imports fromnext/server
tonext/og
for usage of Dynamic OG Image Generation. - Migrate to the New Image Component - Dangerously migrates from
next/legacy/image
to the newnext/image
by 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 alegacyBehavior
prop to Links that cannot be auto-fixed. - Remove system props and add them to the
sx
prop - See Material UI codemod projects for more details. - Removes
Unstyled
suffix from base components - See Material UI codemod projects for more details. - Removes
component
prop from base components - See Material UI codemod projects for more details. - Removes
imgProps
prop from Avatar component - See Material UI codemod projects for more details. - Rename Next Image Imports - Safely renames
next/image
imports in existing Next.js10
11
or12
applications tonext/legacy/image
in Next.js 13. Also renamesnext/future/image
tonext/image
. - Rename Next Image Imports - Safely renames
next/image
imports in existing Next.js10
11
or12
applications tonext/legacy/image
in Next.js 13. Also renamesnext/future/image
tonext/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
Mui
classname prefix - See Material UI codemod projects for more details. - Renames
TextField
toInput
- See Material UI codemod projects for more details. - Renames
alpha
prop toopacity
- See Material UI codemod projects for more details. - Renames
closeIcon
prop tocloseButtonIcon
- See Material UI codemod projects for more details. - Renames
collapsedHeight
prop totransitionCollapsedHeight
- See Material UI codemod projects for more details. - Renames
color
prop tocolorOverride
- See Material UI codemod projects for more details. - Renames
component
prop toas
- See Material UI codemod projects for more details. - Renames
gap
prop tospacing
- See Material UI codemod projects for more details. - Renames
option
prop togetOptionLabel
- See Material UI codemod projects for more details. - Renames
row
prop 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
return
statement with simple arrow - Replace all function expressions with onlyreturn
statement 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
@mui
imports with@mui/material
- See Material UI codemod projects for more details. - Transform AMD style
define()
calls to ES6import
statements - Transform AMD styledefine()
calls to ES6import
statements - Transform AMP HOC into page config - Transforms the
withAmp
HOC 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 ES6import
statements - Transform CommonJS stylerequire()
calls to ES6import
statements - Update the theme creation from
@mui/system@v5
to be compatible with@pigment-css/react
- See Material UI codemod projects for more details. - Update the usage of the
sx
prop to be compatible with@pigment-css/react
- See Material UI codemod projects for more details. - Updates
borderRadius
prop values - See Material UI codemod projects for more details. - Updates
circle
prop tovariant="circular"
- See Material UI codemod projects for more details. - Updates
circular
prop tovariant="circular"
- See Material UI codemod projects for more details. - Updates
down
prop for Hidden component - See Material UI codemod projects for more details. - Updates
justify
prop tojustifyContent
for Grid component - See Material UI codemod projects for more details. - Updates
minRows
andmaxRows
props for TextareaAutosize component - See Material UI codemod projects for more details. - Updates
overlap
prop tovariant="dot"
- See Material UI codemod projects for more details. - Updates
round
values for theme typography - See Material UI codemod projects for more details. - Updates
size
prop for IconButton component - See Material UI codemod projects for more details. - Updates
variant
prop for Chip component - See Material UI codemod projects for more details. - Updates
variant
prop for CircularProgress component - See Material UI codemod projects for more details. - Updates
variant
prop for Fab component - See Material UI codemod projects for more details. - Updates
variant
prop for Skeleton component - See Material UI codemod projects for more details. - Updates
variant
prop usage - See Material UI codemod projects for more details. - Updates
width
values 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
styled
from@mui/system@v5
to 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/Grid
components 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/font
package and transforms@next/font
imports into the built-innext/font
. - Use
viewport
export - This codemod migrates certain viewport metadata toviewport
export. - Use
withRouter
- Transforms the deprecated automatically injected url property on top-level pages to usingwithRouter
and therouter
property it injects. Read more here.
collections
2 recipes
- Adopt
SequencedCollection
- Replace older code patterns withSequencedCollection
methods, 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
11 recipes
- 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.StandardCharsets
over third-party usage of apache'sorg.apache.commons.io.Charsets
. - Prefer
java.nio.charset.StandardCharsets
- Prefer the Java standard library'sjava.nio.charset.StandardCharsets
overorg.apache.commons.lang3.CharEncoding
. - Prefer
java.nio.file.Files
- Prefer the Java standard library'sjava.nio.file.Files
over third-party usage of apache'sapache.commons.io.FileUtils
. - Prefer
java.util.Base64
- Prefer the Java standard library'sjava.util.Base64
over third-party usage of apache'sapache.commons.codec.binary.Base64
. - Relocate
org.apache.commons:commons-io
tocommons-io:commons-io
- The deployment oforg.apache.commons:commons-io
was 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
IOUtils
method 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)
.
commons-logging
2 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.
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.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ra.xml
files to WebLogic 15.1.1
connectors
1 recipe
- Migrate xmlns entries in
ra.xml
files (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-java8
tocucumber-java
- Migratescucumber-java8
step definitions andLambdaGlue
hooks tocucumber-java
annotated 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-2016-1000027
1 recipe
- Secure Spring service exporters - The default Java deserialization mechanism is available via
ObjectInputStream
class. 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’sRemoteInvocationSerializingExporter
uses 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 leastHttpInvokerServiceExporter
andSimpleHttpInvokerServiceExporter
that 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.
CVE-2021-42574
1 recipe
- 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.
CVE-2021-44228
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.
CWE-1021
1 recipe
- Prevent clickjacking - The
frame-ancestors
directive can be used in a Content-Security-Policy HTTP response header to indicate whether or not a browser should be allowed to render a page in a<frame>
or<iframe>
. Sites can use this to avoid Clickjacking attacks by ensuring that their content is not embedded into other sites.
CWE-22
2 recipes
- 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/outnot
is not under the/out
directory. It's important to understand that the terminating slash may be removed when using variousString
representations of theFile
object. 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
. - 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.
CWE-269
1 recipe
- 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.
CWE-326
1 recipe
- Migrates deprecated
DefaultHttpClient
- SinceDefaultHttpClient
is deprecated, we need to change it to theCloseableHttpClient
. It only covers the default scenario with no customHttpParams
orConnectionManager
. Of note: theDefaultHttpClient
does not support TLS 1.2. References: - Find Sec Bugs - IBM Support Pages
CWE-338
1 recipe
- Fix CWE-338 with
SecureRandom
- Use a cryptographically strong pseudo-random number generator (PRNG).
CWE-352
1 recipe
- 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.
CWE-377
2 recipes
- Use
Files#createTempDirectory
- UseFiles#createTempDirectory
when 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()
.
CWE-379
1 recipe
- Use
Files#createTempDirectory
- UseFiles#createTempDirectory
when the sequenceFile#createTempFile(..)
->File#delete()
->File#mkdir()
is used for creating a temp directory.
CWE-396
1 recipe
- 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 thetry
block that are not already caught by more specificcatch
clauses.
CWE-502
3 recipes
- Insecure JMS deserialization - JMS
Object
messages depend on Java Serialization for marshalling/unmarshalling of the message payload whenObjectMessage#getObject
is called. Deserialization of untrusted data can lead to security flaws. - 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.
CWE-611
1 recipe
- XML parser XXE vulnerability - Avoid exposing dangerous features of the XML parser by updating certain factory settings.
CWE-614
1 recipe
- 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.
CWE-829
1 recipe
- Use HTTPS for repositories - Use HTTPS for repository URLs.
CWE-94
2 recipes
- 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.
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.
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-servlet-handler
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.yml
configuration 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
4 recipes
- Change dependabot schedule interval - Change the schedule interval for a given package-ecosystem in a
dependabot.yml
configuration file. The available configuration options for dependabot are listed on GitHub. - 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.
- Update Jakarta EE Platform Dependencies to 9.1.0 - Update Jakarta EE Platform Dependencies to 9.1.0
deployment-plan
2 recipes
- Migrate xmlns entries in
plan.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in
plan.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inplan.xml
files to WebLogic 15.1.1
deprecated
16 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.
- 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_ERROR
instead 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
4 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()
withnull
to make its behavior more obvious and try to simplify execution paths afterwards.
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
DevCenter:security
1 recipe
- Post quantum cryptography - Locate cryptographic configuration which may need to be updated for a brave new post-quantum-supremacy world.
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
3 recipes
- Migrate xmlns entries and javax. packages in
ejb-jar.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries and javax. packages in
validation.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
ejb-jar.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
ejb-3.2
3 recipes
- Migrate xmlns entries in
persistence-configuration.xml
files 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.xml
files 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-rdbms-jar.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic EJB 3.2 RDBMS schema files to WebLogic 14.1.2
ejb-jar
2 recipes
- Migrate xmlns entries in
weblogic-ejb-jar.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ejb-jar.xml
files to WebLogic 15.1.1
epoll
1 recipe
- Replace
EpollEventLoopGroup
withMultiThreadIoEventLoopGroup
- 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-eslint
plugin and the correspondingplugin:@typescript-eslint/recommended
extend. - 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
eslint-plugin-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
eslint-plugin-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
eslint-plugin-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
eslint-plugin-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
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.tld
file with taglib 2.1 tosrc/main/webapp/WEB-INF/tags
. - Add implicit TLD with taglib 3.0 - Add
implicit.tld
file 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*.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
faces-config.xml
files - Jakarta EE 10 uses Faces version 4. - Migrate xmlns entries in
faces-config.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
faces-config.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
taglib.xml
files - Faces 4 uses facelet-taglib 4.0. - Migrate xmlns entries in
taglib.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
test-web.xml
files 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.xml
files - Faces 4 uses web-fragment 6.0. - Migrate xmlns entries in
web-fragment.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web-fragment.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web.xml
files - Faces 4 uses web-app 6.0. - Migrate xmlns entries in
web.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web.xml
files 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
@ManagedBean
to use CDI@Named
- Faces ManagedBean was deprecated in JSF 2.3 (EE8) and removed in Jakarta Faces 4.0 (EE10). Replace@ManagedBean
with@Named
for 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.
faces-config
1 recipe
- Migrate xmlns entries in
faces-config.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
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-mysql
dependency 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-oracle
dependency 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-postgresql
dependency 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-sqlserver
dependency 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
PodSecurityPolicy
controller on Google Kubernetes Engine (GKE) clusters - EnsurePodSecurityPolicy
controller 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
7 recipes
- Add manual workflow trigger - You can manually trigger workflow runs. To trigger specific workflows in a repository, use the
workflow_dispatch
event. - Change dependabot schedule interval - Change the schedule interval for a given package-ecosystem in a
dependabot.yml
configuration file. The available configuration options for dependabot are listed on GitHub. - 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.
- Rename
gradle/gradle-build-action
togradle/actions/setup-gradle
- Rename the deprecatedgradle/gradle-build-action
togradle/actions/setup-gradle@v3
. - Rename
gradle/wrapper-validation-action
togradle/actions/wrapper-validation
- Rename the deprecatedgradle/wrapper-validation-action
togradle/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
ReplaceSecrets
andReplaceSecretKeys
recipes combined used to update the Maven publishing secrets in OpenRewrite's GitHub organization.
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.bind
namespace. - 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavax
namespace, despite the move to the Jakarta artifact.
gradle
4 recipes
- Rename
gradle/gradle-build-action
togradle/actions/setup-gradle
- Rename the deprecatedgradle/gradle-build-action
togradle/actions/setup-gradle@v3
. - Rename
gradle/wrapper-validation-action
togradle/actions/wrapper-validation
- Rename the deprecatedgradle/wrapper-validation-action
togradle/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
46 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#compareUnsigned
instead of usingcom.google.common.primitives.UnsignedInts#compare
orcom.google.common.primitives.UnsignedInts#compareUnsigned
. - Prefer
Integer#compare
- Preferjava.lang.Integer#compare
instead of usingcom.google.common.primitives.Ints#compare
. - Prefer
Integer#divideUnsigned
- Preferjava.lang.Integer#divideUnsigned
instead of usingcom.google.common.primitives.UnsignedInts#divide
orcom.google.common.primitives.UnsignedInts#divideUnsigned
. - Prefer
Integer#parseUnsignedInt
- Preferjava.lang.Integer#parseUnsignedInt
instead of usingcom.google.common.primitives.UnsignedInts#parseUnsignedInt
. - Prefer
Integer#remainderUnsigned
- Preferjava.lang.Integer#remainderUnsigned
instead of usingcom.google.common.primitives.UnsignedInts#remainderUnsigned
. - Prefer
Long#compareUnsigned
- Preferjava.lang.Long#compareUnsigned
instead of usingcom.google.common.primitives.UnsignedLongs#compare
orcom.google.common.primitives.UnsignedLongs#compareUnsigned
. - Prefer
Long#compare
- Preferjava.lang.Long#compare
instead of usingcom.google.common.primitives.Longs#compare
. - Prefer
Long#divideUnsigned
- Preferjava.lang.Long#divideUnsigned
instead of usingcom.google.common.primitives.UnsignedLongs#divide
orcom.google.common.primitives.UnsignedLongs#divideUnsigned
. - Prefer
Long#parseUnsignedInt
- Preferjava.lang.Long#parseUnsignedInt
instead of usingcom.google.common.primitives.UnsignedLongs#parseUnsignedInt
. - Prefer
Long#remainderUnsigned
- Preferjava.lang.Long#remainderUnsigned
instead of usingcom.google.common.primitives.UnsignedLongs#remainderUnsigned
. - Prefer
Math#addExact
- Preferjava.lang.Math#addExact
instead of usingcom.google.common.math.IntMath#checkedAdd
orcom.google.common.math.IntMath#addExact
. - Prefer
Math#clamp
- Preferjava.lang.Math#clamp
instead of usingcom.google.common.primitives.*#constrainToRange
. - Prefer
Math#multiplyExact
- Preferjava.lang.Math#multiplyExact
instead of usingcom.google.common.primitives.IntMath#checkedMultiply
orcom.google.common.primitives.IntMath#multiplyExact
. - Prefer
Math#subtractExact
- Preferjava.lang.Math#subtractExact
instead of usingcom.google.common.primitives.IntMath#checkedSubtract
orcom.google.common.primitives.IntMath#subtractExact
. - Prefer
Runnable::run
-Executor
is a SAM-compatible interface, soRunnable::run
is just as succinct asMoreExecutors.directExecutor()
but without the third-party library requirement. - Prefer
Short#compare
- Preferjava.lang.Short#compare
instead 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#compare
instead of usingcom.google.common.primitives.Chars#compare
. - Prefer
java.nio.charset.StandardCharsets
- Preferjava.nio.charset.StandardCharsets
instead of usingcom.google.common.base.Charsets
. - Prefer
java.util.Collections#synchronizedNavigableMap
- Preferjava.util.Collections#synchronizedNavigableMap
instead of usingcom.google.common.collect.Maps#synchronizedNavigableMap
. - Prefer
java.util.Collections#unmodifiableNavigableMap
- Preferjava.util.Collections#unmodifiableNavigableMap
instead of usingcom.google.common.collect.Maps#unmodifiableNavigableMap
. - Prefer
java.util.Objects#equals
- Preferjava.util.Objects#equals
instead of usingcom.google.common.base.Objects#equal
. - Prefer
java.util.Objects#hash
- Preferjava.util.Objects#hash
instead of usingcom.google.common.base.Objects#hashCode
orcom.google.common.base.Objects hash(..)
. - Prefer
java.util.Objects#requireNonNullElse
- Preferjava.util.Objects#requireNonNullElse
instead 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.Optional
instead of usingcom.google.common.base.Optional
. - Prefer
java.util.function.Function
- Preferjava.util.function.Function
instead of usingcom.google.common.base.Function
. - Prefer
java.util.function.Predicate
- Preferjava.util.function.Predicate
instead of usingcom.google.common.base.Predicate
. - Prefer
java.util.function.Supplier
- Preferjava.util.function.Supplier
instead 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.
hamcrest
6 recipes
- Add
org.hamcrest:hamcrest
if 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.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
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:httpcore5
fromorg.apache.httpcomponents:httpcore-nio
- Migrate from org.apache.httpcomponents to ApacheHttpClient 5.x dependencies - Adopt
org.apache.httpcomponents.client5:httpclient5
fromorg.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-api
dependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Migrate deprecated
javax.inject
packages tojakarta.inject
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.inject
packages tojakarta.inject
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
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
3 recipes
- Jackson best practices - Apply best practices for using Jackson library, including upgrade to Jackson 2.x and removing redundant annotations.
- Migrates Jackson 2.x base exceptions to Jackson 3.x base exceptions - Jackson 3 contains new base exceptions which were also backported to 2.x. This recipe will migrate usage to the new base exceptions to prepare for a 3.x upgrade.
- Migrates from Jackson 2.x to Jackson 3.x - Migrate applications to the latest Jackson 3.x release.
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
99 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-api
dependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit Inject dependencies - Add the necessary
inject-api
dependency 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.bind
namespace. - 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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.bind
namespace. 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will update to versions greater than 3.x which necessitates the package change as well. - 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.activation
packages tojakarta.activation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.activation
packages tojakarta.activation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation.security
packages tojakarta.annotation.security
- Change type of classes in thejavax.annotation.security
package to jakarta. - Migrate deprecated
javax.annotation.sql
packages tojakarta.annotation.sql
- Change type of classes in thejavax.annotation.sql
package to jakarta. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. Excludesjavax.annotation.processing
. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Change type of classes in thejavax.annotation
package to jakarta. - Migrate deprecated
javax.annotation
tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation
tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.batch
packages tojakarta.batch
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.batch
packages tojakarta.batch
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.inject
packages tojakarta.inject
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.inject
packages tojakarta.inject
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.transaction
packages tojakarta.transaction
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.transaction
packages tojakarta.transaction
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.validation
packages tojakarta.validation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.validation
packages tojakarta.validation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.bind
packages tojakarta.xml.bind
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.bind
packages tojakarta.xml.bind
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.ws
packages tojakarta.xml.ws
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.ws
packages 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
jakarta
namespace. - 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.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries and javax. packages in
validation.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
**/batch-jobs/*.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
**/validation/*.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
*.tld
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
*.xjb
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
*taglib*.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
application-client.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
application.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
batch.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
beans.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
beans.xml
files for Beans 3.0. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
ejb-jar.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
faces-config.xml
files - Jakarta EE 10 uses Faces version 4. - Migrate xmlns entries in
faces-config.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
faces-config.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
handler.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
orm.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
permissions.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
ra.xml
files (Connectors). - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
taglib.xml
files - Faces 4 uses facelet-taglib 4.0. - Migrate xmlns entries in
taglib.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
test-*.xml
files 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.xml
files 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.xml
files - Faces 4 uses web-fragment 6.0. - Migrate xmlns entries in
web-fragment.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web-fragment.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web.xml
files - Faces 4 uses web-app 6.0. - Migrate xmlns entries in
web.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
webservices.xml
files. - 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
@ManagedBean
to use CDI@Named
- Faces ManagedBean was deprecated in JSF 2.3 (EE8) and removed in Jakarta Faces 4.0 (EE10). Replace@ManagedBean
with@Named
for 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavax
namespace, 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavax
namespace, despite the move to the Jakarta artifact.
jakartaee
4 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.
java
8 recipes
- JSpecify best practices - Apply JSpecify best practices, such as migrating off of alternatives, and adding missing
@Nullable
annotations. - 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
java-util-logging
2 recipes
- Migrate JUL to Log4j 2.x API - Transforms code written using
java.util.logging
to use Log4j 2.x API. - Migrate JUL to SLF4J - Migrates usage of Java Util Logging (JUL) to using SLF4J directly.
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-api
dependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit Inject dependencies - Add the necessary
inject-api
dependency 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.bind
namespace. - 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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.bind
namespace. 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will update to versions greater than 3.x which necessitates the package change as well. - Do not package
java.xml.bind
andjava.activation
modules in WebSphere Liberty applications - Thejava.xml.bind
andjava.activation
modules were removed in Java11. Websphere Liberty provides its own implementation of the modules, which can be used by specifying thejaxb-2.2
feature in the server.xml file. This recipe updates thejavax.xml.bind
andjavax.activation
dependencies to use theprovided
scope to avoid class loading issues. - Do not package
java.xml.ws
module in WebSphere Liberty applications - Thejava.xml.ws
module was removed in Java11. Websphere Liberty provides its own implementation of the module, which can be used by specifying thejaxws-2.2
feature in the server.xml file. This recipe updates thejavax.xml.ws
dependency to use theprovided
scope 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#requireNonNullElse
instead 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.get
withPath.of
- Thejava.nio.file.Paths.get
method was introduced in Java SE 7. Thejava.nio.file.Path.of
method was introduced in Java SE 11. This recipe replaces all usages ofPaths.get
withPath.of
for consistency. - Replace
javax.security.auth.Policy
withjava.security.Policy
- Thejavax.security.auth.Policy
class 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.jsse2
instead ofcom.sun.net.ssl.internal.ssl
- Do not use thecom.sun.net.ssl.internal.ssl.Provider
class. - Use
com.ibm.net.ssl.www2.protocol.https.Handler
instead ofcom.sun.net.ssl.internal.www.protocol.https.Handler
- Do not use thecom.sun.net.ssl.internal.www.protocol.https.Handler
class. - Use
com.ibm.net.ssl.www2.protocol
instead ofcom.sun.net.ssl.internal.www.protocol
- Do not use thecom.sun.net.ssl.internal.www.protocol
package. - Use
com.sun.security.auth.module.Krb5LoginModule
instead ofcom.ibm.security.auth.module.Krb5LoginModule
- Do not use thecom.ibm.security.auth.module.Krb5LoginModule
class. - Use
com.sun.xml.bind.*
instead ofcom.sun.xml.internal.bind.*
- Do not use APIs fromcom.sun.xml.internal.bind.*
packages. - Use
javax.net.ssl
instead ofcom.sun.net.ssl
- Do not use APIs fromcom.sun.net.ssl
packages. - 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavax
namespace, 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavax
namespace, despite the move to the Jakarta artifact.
java17
23 recipes
- Add
lombok-mapstruct-binding
when both MapStruct and Lombok are used - Add thelombok-mapstruct-binding
annotation processor as needed when both MapStruct and Lombok are used. - Adopt
setLongThreadID
injava.util.logging.LogRecord
- Avoid using the deprecated methods injava.util.logging.LogRecord
- Adopt
setLongThreadID
injava.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.traceMethodCalls
methods - ThetraceInstructions
andtraceMethodCalls
methods injava.lang.Runtime
were deprecated in Java SE 9 and are no longer available in Java SE 13 and later. The recipe removes the invocations of these methods since the method invocations do nothing functionally. - Remove
Thread.countStackFrames()
method -Thread.countStackFrames()
has been removed in Java SE 14 and has been changed in this release to unconditionally throwUnsupportedOperationException
This 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_TYPES
constant - This recipe replaces theRMIConnectorServer.CREDENTIAL_TYPES
constant with theRMIConnectorServer.CREDENTIALS_FILTER_PATTERN
constant. - 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.ssl
package - The internal APIcom.sun.net.ssl
is removed. The package was intended for internal use only and replacement APIs can be found in thejavax.net.ssl
package. - Replace
finalize
method injava.io.FileInputStream
andjava.io.FileOutputStream
- Thefinalize
method injava.io.FileInputStream
andjava.io.FileOutputStream
is no longer available in Java SE 12 and later. The recipe replaces it with theclose
method. - Replace
finalize
method injava.util.zip.ZipFile
,java.util.zip.Inflater
andjava.util.zip.Deflater
- Thefinalize
method injava.util.zip.ZipFile
is replaced with theclose
method and is replaced by theend
method injava.util.zip.Inflater
andjava.util.zip.Deflater
as it is no longer available in Java SE 12 and later. - Set visibility of
premain
andagentmain
methods topublic
- Check for a behavior change in Java agents. - Set visibility of
premain
andagentmain
methods 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
SunJSSE
instead ofcom.sun.net.ssl.internal.ssl.Provider
- Thecom.sun.net.ssl.internal.ssl.Provider
provider name was removed. - Use
SunJSSE
instead ofcom.sun.net.ssl.internal.ssl.Provider
- Thecom.sun.net.ssl.internal.ssl.Provider
provider name was removed. - Use
java.security.cert
instead ofjavax.security.cert
- Thejavax.security.cert
package has been deprecated for removal. - Use
java.security.cert
instead ofjavax.security.cert
- Thejavax.security.cert
package has been deprecated for removal.
java21
11 recipes
- Adopt
SequencedCollection
- Replace older code patterns withSequencedCollection
methods, 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 the
javax.security.auth.Subject.getSubject()and
javax.security.auth.Subject.doAs()methods with
javax.security.auth.Subject.current()and
javax.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
ExecutorService
creation - Find all places where staticjava.util.concurrent.Executors
method creates a non-virtualjava.util.concurrent.ExecutorService
. This recipe can be used to search froExecutorService
that 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#clamp
instead 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()
withnull
to 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavax
namespace, 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavax
namespace, 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-api
dependency from Jakarta EE 8 to maintain compatibility with Java version 11 or greater. - Add explicit Inject dependencies - Add the necessary
inject-api
dependency 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.bind
namespace. - 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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.bind
namespace. 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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.activation
packages tojakarta.activation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.activation
packages tojakarta.activation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation.security
packages tojakarta.annotation.security
- Change type of classes in thejavax.annotation.security
package to jakarta. - Migrate deprecated
javax.annotation.sql
packages tojakarta.annotation.sql
- Change type of classes in thejavax.annotation.sql
package to jakarta. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. Excludesjavax.annotation.processing
. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation
packages tojakarta.annotation
- Change type of classes in thejavax.annotation
package to jakarta. - Migrate deprecated
javax.annotation
tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.annotation
tojakarta.annotation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.batch
packages tojakarta.batch
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.batch
packages tojakarta.batch
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.inject
packages tojakarta.inject
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.inject
packages tojakarta.inject
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.transaction
packages tojakarta.transaction
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.transaction
packages tojakarta.transaction
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.validation
packages tojakarta.validation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.validation
packages tojakarta.validation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.bind
packages tojakarta.xml.bind
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.bind
packages tojakarta.xml.bind
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.ws
packages tojakarta.xml.ws
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.ws
packages 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavax
namespace, 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavax
namespace, 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.bind
namespace. - 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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.bind
namespace. 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.bind
namespace. Running a full javax to Jakarta migration usingorg.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
will 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.bind
packages tojakarta.xml.bind
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.bind
packages 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
jakarta
namespace. - 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
*.xjb
files. - 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAXB API. The resulting dependencies still use thejavax
namespace, despite the move to the Jakarta artifact.
jaxws
5 recipes
- Migrate deprecated
javax.xml.ws
packages tojakarta.xml.ws
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.xml.ws
packages 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
jakarta
namespace. - 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
+testImplementation
and Mavenprovided
scope, to any project that has a transitive dependency on the JAX-WS API. The resulting dependencies still use thejavax
namespace, despite the move to the Jakarta artifact.
jdbc
2 recipes
- Migrate xmlns entries in
*-jdbc.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JDBC schema files to WebLogic 14.1.2 - Migrate xmlns entries in
*-jdbc.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries in*-jdbc.xml
files to WebLogic 15.1.1
JDK-8212050
1 recipe
- Replace invocations of
finalize()
onFileInputStream
andFileOutputStream
withclose()
- Replace invocations of the deprecatedfinalize()
method onFileInputStream
andFileOutputStream
withclose()
.
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-jetty
as a first-order dependency and will add the maven propertyjakarta-servlet.version
setting it's value to5.0.0
. This will downgrade thejakarta-servlet
artifact 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
3 recipes
- Migrate javax.jms to jakarta.jms on MDB - Migrate javax.jms to jakarta.jms on MDB
- Migrate xmlns entries in
*-jms.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in
*-jms.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries in*-jms.xml
files to WebLogic 15.1.1
jobXML
1 recipe
- Migrate xmlns entries in
**/batch-jobs/*.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
joda-time
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.time
package was introduced, incorporating most of Joda-Time's concepts. Features deemed too specialized or bulky forjava.time
were included in the ThreeTen-Extra library. This recipe migrates Joda-Time types tojava.time
andthreeten-extra
types.
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*.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
faces-config.xml
files - Jakarta EE 10 uses Faces version 4. - Migrate xmlns entries in
faces-config.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
faces-config.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
taglib.xml
files - Faces 4 uses facelet-taglib 4.0. - Migrate xmlns entries in
taglib.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
test-web.xml
files 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.xml
files - Faces 4 uses web-fragment 6.0. - Migrate xmlns entries in
web-fragment.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web-fragment.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web.xml
files - Faces 4 uses web-app 6.0. - Migrate xmlns entries in
web.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
web.xml
files 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
@ManagedBean
to use CDI@Named
- Faces ManagedBean was deprecated in JSF 2.3 (EE8) and removed in Jakarta Faces 4.0 (EE10). Replace@ManagedBean
with@Named
for 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
*.tld
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
jsptaglibrary
1 recipe
- Migrate xmlns entries in
*.tld
files. - 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-api
dependency 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
15 recipes
- Add
org.hamcrest:hamcrest
if 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 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.
- Use Arquillian JUnit 5 Extension - Migrates Arquillian JUnit 4 to JUnit 5.
- Use JUnit Jupiter
@Disabled
- Migrates JUnit 4.x@Ignore
to JUnit Jupiter@Disabled
. - Use JUnit Jupiter
Executable
- Migrates JUnit 4.xThrowingRunnable
to 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
MockWebServer
to enable JUnit Jupiter Extension support. - Use Vert.x JUnit 5 Extension - Migrates Vert.x
@RunWith
VertxUnitRunner
to the JUnit Jupiter@ExtendWith
VertxExtension
. - 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
1 recipe
- 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
2 recipes
- 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.
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
LocalEventLoopGroup
withMultiThreadIoEventLoopGroup
- 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.logging
to 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.properties
files. - Migrate Log4j 2.x to Logback - Migrates usage of Apache Log4j 2.x to using
logback
as an SLF4J implementation directly. Note, this currently does not modifylog4j.properties
files. - 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.properties
files. - 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.properties
files. - 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
logback
as an SLF4J implementation directly. Note, this currently does not modifylog4j.properties
files.
logging
19 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 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.logging
to 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.properties
files. - Migrate Log4j 2.x to Logback - Migrates usage of Apache Log4j 2.x to using
logback
as an SLF4J implementation directly. Note, this currently does not modifylog4j.properties
files. - 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.properties
files. - 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.properties
files. - Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from
cf-java-logging-support-servlet
tocf-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.logging
APIs - Certain Java logging APIs have become deprecated and their usages changed, necessitating usage changes.
lombok
6 recipes
- Convert
@lombok.Value
class to Record - Convert Lombok@Value
annotated classes to standard Java Records. - Convert getter methods to annotations - Convert trivial getter methods to
@Getter
annotations on their respective fields. - Convert setter methods to annotations - Convert trivial setter methods to
@Setter
annotations 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'sonX
annotations from the Java 7 style using@__
to the Java 8+ style usingonX_
. For example,@Getter(onMethod=@__({@Id}))
becomes@Getter(onMethod_={@Id})
. - Prefer
final var
overlombok.val
- Prefer the Java standard library'sfinal var
andvar
over third-party usage of Lombok'slombok.val
andlombok.var
in Java 10 or higher.
material-ui
78 recipes
- Adds
DefaultTheme
module 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
rootRef
toref
- See Material UI codemod projects for more details. - Converts
sx
prop tosx
style prop - See Material UI codemod projects for more details. - Converts all
@mui/material
submodule 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
sx
prop - See Material UI codemod projects for more details. - Removes
Unstyled
suffix from base components - See Material UI codemod projects for more details. - Removes
component
prop from base components - See Material UI codemod projects for more details. - Removes
imgProps
prop 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
Mui
classname prefix - See Material UI codemod projects for more details. - Renames
TextField
toInput
- See Material UI codemod projects for more details. - Renames
alpha
prop toopacity
- See Material UI codemod projects for more details. - Renames
closeIcon
prop tocloseButtonIcon
- See Material UI codemod projects for more details. - Renames
collapsedHeight
prop totransitionCollapsedHeight
- See Material UI codemod projects for more details. - Renames
color
prop tocolorOverride
- See Material UI codemod projects for more details. - Renames
component
prop toas
- See Material UI codemod projects for more details. - Renames
gap
prop tospacing
- See Material UI codemod projects for more details. - Renames
option
prop togetOptionLabel
- See Material UI codemod projects for more details. - Renames
row
prop 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
@mui
imports with@mui/material
- See Material UI codemod projects for more details. - Update the theme creation from
@mui/system@v5
to be compatible with@pigment-css/react
- See Material UI codemod projects for more details. - Update the usage of the
sx
prop to be compatible with@pigment-css/react
- See Material UI codemod projects for more details. - Updates
borderRadius
prop values - See Material UI codemod projects for more details. - Updates
circle
prop tovariant="circular"
- See Material UI codemod projects for more details. - Updates
circular
prop tovariant="circular"
- See Material UI codemod projects for more details. - Updates
down
prop for Hidden component - See Material UI codemod projects for more details. - Updates
justify
prop tojustifyContent
for Grid component - See Material UI codemod projects for more details. - Updates
minRows
andmaxRows
props for TextareaAutosize component - See Material UI codemod projects for more details. - Updates
overlap
prop tovariant="dot"
- See Material UI codemod projects for more details. - Updates
round
values for theme typography - See Material UI codemod projects for more details. - Updates
size
prop for IconButton component - See Material UI codemod projects for more details. - Updates
variant
prop for Chip component - See Material UI codemod projects for more details. - Updates
variant
prop for CircularProgress component - See Material UI codemod projects for more details. - Updates
variant
prop for Fab component - See Material UI codemod projects for more details. - Updates
variant
prop for Skeleton component - See Material UI codemod projects for more details. - Updates
variant
prop usage - See Material UI codemod projects for more details. - Updates
width
values 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
styled
from@mui/system@v5
to 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/Grid
components 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.
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
2 recipes
- 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.
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)
.
mui
78 recipes
- Adds
DefaultTheme
module 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
rootRef
toref
- See Material UI codemod projects for more details. - Converts
sx
prop tosx
style prop - See Material UI codemod projects for more details. - Converts all
@mui/material
submodule 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
sx
prop - See Material UI codemod projects for more details. - Removes
Unstyled
suffix from base components - See Material UI codemod projects for more details. - Removes
component
prop from base components - See Material UI codemod projects for more details. - Removes
imgProps
prop 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
Mui
classname prefix - See Material UI codemod projects for more details. - Renames
TextField
toInput
- See Material UI codemod projects for more details. - Renames
alpha
prop toopacity
- See Material UI codemod projects for more details. - Renames
closeIcon
prop tocloseButtonIcon
- See Material UI codemod projects for more details. - Renames
collapsedHeight
prop totransitionCollapsedHeight
- See Material UI codemod projects for more details. - Renames
color
prop tocolorOverride
- See Material UI codemod projects for more details. - Renames
component
prop toas
- See Material UI codemod projects for more details. - Renames
gap
prop tospacing
- See Material UI codemod projects for more details. - Renames
option
prop togetOptionLabel
- See Material UI codemod projects for more details. - Renames
row
prop 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
@mui
imports with@mui/material
- See Material UI codemod projects for more details. - Update the theme creation from
@mui/system@v5
to be compatible with@pigment-css/react
- See Material UI codemod projects for more details. - Update the usage of the
sx
prop to be compatible with@pigment-css/react
- See Material UI codemod projects for more details. - Updates
borderRadius
prop values - See Material UI codemod projects for more details. - Updates
circle
prop tovariant="circular"
- See Material UI codemod projects for more details. - Updates
circular
prop tovariant="circular"
- See Material UI codemod projects for more details. - Updates
down
prop for Hidden component - See Material UI codemod projects for more details. - Updates
justify
prop tojustifyContent
for Grid component - See Material UI codemod projects for more details. - Updates
minRows
andmaxRows
props for TextareaAutosize component - See Material UI codemod projects for more details. - Updates
overlap
prop tovariant="dot"
- See Material UI codemod projects for more details. - Updates
round
values for theme typography - See Material UI codemod projects for more details. - Updates
size
prop for IconButton component - See Material UI codemod projects for more details. - Updates
variant
prop for Chip component - See Material UI codemod projects for more details. - Updates
variant
prop for CircularProgress component - See Material UI codemod projects for more details. - Updates
variant
prop for Fab component - See Material UI codemod projects for more details. - Updates
variant
prop for Skeleton component - See Material UI codemod projects for more details. - Updates
variant
prop usage - See Material UI codemod projects for more details. - Updates
width
values 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
styled
from@mui/system@v5
to 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/Grid
components 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-mysql
dependency 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
EpollEventLoopGroup
withMultiThreadIoEventLoopGroup
- Replacenew EpollEventLoopGroup()
withnew MultiThreadIoEventLoopGroup(EpollIoHandler.newFactory())
. - Replace
LocalEventLoopGroup
withMultiThreadIoEventLoopGroup
- Replacenew LocalEventLoopGroup()
withnew MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory())
. - Replace
NioEventLoopGroup
withMultiThreadIoEventLoopGroup
- Replacenew NioEventLoopGroup()
withnew MultiThreadIoEventLoopGroup(NioIoHandler.newFactory())
. - Replace all
EventLoopGroup
s withMultiThreadIoEventLoopGroup
- Replaces Netty'snew *EventLoopGroup
withnew MultiThreadIoEventLoopGroup(*IoHandler.newFactory())
.
networking
1 recipe
- Use modernized
java.net
APIs - 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
React
to include the import in order for the new React JSX transform to work. - Migrate
ImageResponse
imports - This codemod moves transforms imports fromnext/server
tonext/og
for usage of Dynamic OG Image Generation. - Migrate to the New Image Component - Dangerously migrates from
next/legacy/image
to the newnext/image
by 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 alegacyBehavior
prop to Links that cannot be auto-fixed. - Rename Next Image Imports - Safely renames
next/image
imports in existing Next.js10
11
or12
applications tonext/legacy/image
in Next.js 13. Also renamesnext/future/image
tonext/image
. - Rename Next Image Imports - Safely renames
next/image
imports in existing Next.js10
11
or12
applications tonext/legacy/image
in Next.js 13. Also renamesnext/future/image
tonext/image
. - Transform AMP HOC into page config - Transforms the
withAmp
HOC 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/font
package and transforms@next/font
imports into the built-innext/font
. - Use
viewport
export - This codemod migrates certain viewport metadata toviewport
export. - Use
withRouter
- Transforms the deprecated automatically injected url property on top-level pages to usingwithRouter
and therouter
property it injects. Read more here.
nio
1 recipe
- Replace
NioEventLoopGroup
withMultiThreadIoEventLoopGroup
- Replacenew NioEventLoopGroup()
withnew MultiThreadIoEventLoopGroup(NioIoHandler.newFactory())
.
non-eejakarta
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
okhttp
1 recipe
- Use OkHttp 3 MockWebServer for JUnit 5 - Migrates OkHttp 3
MockWebServer
to 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
@ApiImplicitParams
to@Parameters
- Converts@ApiImplicitParams
to@Parameters
and the@ApiImplicitParam
annotation to@Parameter
and converts the directly mappable attributes and removes the others. - Migrate from
@ApiModelProperty
to@Schema
- Converts the@ApiModelProperty
annotation to@Schema
and converts the "value" attribute to "description". - Migrate from
@ApiOperation
to@Operation
- Converts the@ApiOperation
annotation to@Operation
and converts the directly mappable attributes and removes the others. - Migrate from
@ApiParam
to@Parameter
- Converts the@ApiParam
annotation to@Parameter
and converts the directly mappable attributes. - Migrate from
@ApiResponses
to@ApiResponses
- Changes the namespace of the@ApiResponses
and@ApiResponse
annotations 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.
oracle
1 recipe
- Add missing Flyway module for Oracle - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the
flyway-database-oracle
dependency if you are using Oracle with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780.
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.xml
files - 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.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
persistence
1 recipe
- Migrate xmlns entries in
orm.xml
files - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
persistence-configuration
2 recipes
- Migrate xmlns entries in
persistence-configuration.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inpersistence-configuration.xml
files to WebLogic 15.1.1
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
FindSourceFiles
precondition 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
1 recipe
- 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-postgresql
dependency if you are using PostgreSQL with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780.
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.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic PubSub schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic-pubsub.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-pubsub.xml
files to WebLogic 15.1.1
ra
3 recipes
- Migrate xmlns entries in
ra.xml
files (Connectors). - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation. - Migrate xmlns entries in
weblogic-ra.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ra.xml
files to WebLogic 15.1.1
rdbms-jar
2 recipes
- Migrate xmlns entries in
weblogic-rdbms-jar.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-rdbms-jar.xml
files to WebLogic 15.1.1
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.
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-deployment-plan
2 recipes
- Migrate xmlns entries in
resource-deployment-plan.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inresource-deployment-plan.xml
files to WebLogic 15.1.1
RSPEC-1125
1 recipe
- Simplify boolean expression - Checks for overly complicated boolean expressions, such as
if (b == true)
,b || true
,!false
, etc.
RSPEC-1192
1 recipe
- Replace duplicate
String
literals - ReplacesString
literals with a length of 5 or greater repeated a minimum of 3 times. QualifiedString
literals include final Strings, method invocations, and new class invocations. Adds a newprivate static final String
or 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.
RSPEC-1889
1 recipe
- Replace duplicate
String
literals - ReplacesString
literals with a length of 5 or greater repeated a minimum of 3 times. QualifiedString
literals include final Strings, method invocations, and new class invocations. Adds a newprivate static final String
or 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.
RSPEC-2112
3 recipes
- URL Equals - Uses of
equals()
causejava.net.URL
to make blocking internet connections. Instead, usejava.net.URI
. - URL Equals and Hash Code - Uses of
equals()
andhashCode()
causejava.net.URL
to make blocking internet connections. Instead, usejava.net.URI
. - URL Hash Code - Uses of
hashCode()
causejava.net.URL
to make blocking internet connections. Instead, usejava.net.URI
.
RSPEC-6068
1 recipe
- 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.
RSPEC-S100
1 recipe
- 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()
.
RSPEC-S1068
1 recipe
- 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.
RSPEC-S107
2 recipes
- 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.
RSPEC-S108
1 recipe
- Remove empty blocks - Remove empty blocks that effectively do nothing.
RSPEC-S1110
1 recipe
- Remove unnecessary parentheses - Removes unnecessary parentheses from code where extra parentheses pairs are redundant.
RSPEC-S1111
2 recipes
- Remove
Object.finalize()
invocations - Remove calls toObject.finalize()
. This method is called during garbage collection and calling it manually is misleading. - Remove
finalize()
method - Finalizers are deprecated. Use offinalize()
can lead to performance issues, deadlocks, hangs, and other undesirable behavior.
RSPEC-S1114
1 recipe
finalize()
calls super - Overrides ofObject#finalize()
should call super.
RSPEC-S1116
1 recipe
- 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.
RSPEC-S1117
1 recipe
- Hidden field - Refactor local variables or parameters which shadow a field defined in the same class.
RSPEC-S1118
1 recipe
- Hide utility class constructor - Ensures utility classes (classes containing only static methods or fields in their API) do not have a public constructor.
RSPEC-S1124
1 recipe
- Modifier order - Modifiers should be declared in the correct order as recommended by the JLS.
RSPEC-S1126
1 recipe
- Simplify boolean return - Simplifies Boolean expressions by removing redundancies. For example,
a && true
simplifies toa
.
RSPEC-S1128
1 recipe
- 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.
RSPEC-S113
1 recipe
- End files with a single newline - Some tools work better when files end with an empty line.
RSPEC-S1130
1 recipe
- Unnecessary throws - Remove unnecessary
throws
declarations. This recipe will only remove unused, checked exceptions if: - The declaring class or the method declaration isfinal
. - The method declaration isstatic
orprivate
. - The method overrides a method declaration in a super class and the super class does not throw the exception. - The method ispublic
orprotected
and the exception is not documented via a JavaDoc as a@throws
tag.
RSPEC-S1132
1 recipe
- 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"))
.
RSPEC-S1144
1 recipe
- Remove unused private methods -
private
methods that are never executed are dead code and should be removed.
RSPEC-S1153
1 recipe
- 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")
.
RSPEC-S1155
2 recipes
- Refaster template
CollectionRules.CollectionIsEmpty
- PreferCollection#isEmpty()
over alternatives that consult the collection's size or are otherwise more contrived. - Use
Collection#isEmpty()
instead of comparingsize()
- Also check for notisEmpty()
when testing for not equal to zero size.
RSPEC-S1157
1 recipe
- CaseInsensitive comparisons do not alter case - Remove
String#toLowerCase()
orString#toUpperCase()
fromString#equalsIgnoreCase(..)
comparisons.
RSPEC-S1158
1 recipe
- No primitive wrappers for #toString() or #compareTo(..) - Primitive wrappers should not be instantiated only for
#toString()
or#compareTo(..)
invocations.
RSPEC-S116
1 recipe
- 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.
RSPEC-S1161
1 recipe
- Add missing
@Override
to overriding and implementing methods - Adds@Override
to 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.
RSPEC-S117
1 recipe
- 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.
RSPEC-S1171
1 recipe
- No double brace initialization - Replace
List
,Map
, andSet
double brace initialization with an initialization block.
RSPEC-S1186
2 recipes
- Find methods with empty bodies - Find methods with empty bodies and single public no arg constructors.
- Remove empty tests without comments - Removes empty methods with a
@Test
annotation if the body does not have comments.
RSPEC-S1197
1 recipe
- No C-style array declarations - Change C-Style array declarations
int i[];
toint[] i;
.
RSPEC-S120
1 recipe
- 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.
RSPEC-S121
2 recipes
- Fix missing braces - Adds missing braces around code such as single-line
if
,for
,while
, anddo-while
block bodies. - Wrapping and braces - Format line wraps and braces in Java code.
RSPEC-S1215
1 recipe
- Remove garbage collection invocations - Removes calls to
System.gc()
andRuntime.gc()
. When to invoke garbage collection is best left to the JVM.
RSPEC-S1217
2 recipes
- 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. - Replace calls to
Thread.run()
withThread.start()
-Thread.run()
should not be called directly.
RSPEC-S1221
1 recipe
- 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 theObject
base class, despite being case-insensitive.
RSPEC-S1244
2 recipes
- 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.
RSPEC-S1264
1 recipe
- Prefer
while
overfor
loops - 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.
RSPEC-S128
1 recipe
- Fall through - Checks for fall-through in switch statements, adding
break
statements in locations where a case contains Java code but does not have abreak
,return
,throw
, orcontinue
statement.
RSPEC-S1301
1 recipe
switch
statements should have at least 3case
clauses -switch
statements 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 withif
statements.
RSPEC-S1314
1 recipe
- Write octal values as decimal - Developers may not recognize octal values as such, mistaking them instead for decimal values.
RSPEC-S1317
1 recipe
- Change
StringBuilder
andStringBuffer
character constructor argument toString
- Instantiating aStringBuilder
or aStringBuffer
with aCharacter
results in theint
representation of the character being used for the initial size.
RSPEC-S1319
1 recipe
- Use
Collection
interfaces - UseDeque
,List
,Map
,ConcurrentMap
,Queue
, andSet
instead of implemented collections. Replaces the return type of public method declarations and the variable type public variable declarations.
RSPEC-S1448
2 recipes
- 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); } }
.
RSPEC-S1481
1 recipe
- Remove unused local variables - If a local variable is declared but not used, it is dead code and should be removed.
RSPEC-S1488
1 recipe
- Inline variable - Inline variables when they are immediately used to return or throw. Supports both variable declarations and assignments to local variables.
RSPEC-S1596
1 recipe
- Use
Collections#emptyList()
,emptyMap()
, andemptySet()
- ReplacesCollections#EMPTY_...
with methods that return generic types.
RSPEC-S1604
1 recipe
- 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.
RSPEC-S1611
1 recipe
- Remove unnecessary parentheses - Removes unnecessary parentheses from code where extra parentheses pairs are redundant.
RSPEC-S1612
1 recipe
- 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 == null
with the equivalent method reference.
RSPEC-S1659
1 recipe
- 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.
RSPEC-S1697
1 recipe
- Remove redundant null checks before instanceof - Removes redundant null checks before instanceof operations since instanceof returns false for null.
RSPEC-S1698
1 recipe
- 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.
RSPEC-S1858
1 recipe
- Unnecessary
String#toString
- Remove unnecessaryString#toString
invocations on objects which are already a string.
RSPEC-S1905
1 recipe
- Remove redundant casts - Removes unnecessary type casts. Does not currently check casts in lambdas, class constructors, and method invocations.
RSPEC-S1940
7 recipes
- Boolean checks should not be inverted - Ensures that boolean checks are not unnecessarily inverted. Also fixes double negative boolean expressions.
- 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
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.
RSPEC-S1994
1 recipe
for
loop counters incremented in update - The increment should be moved to the loop's increment clause if possible.
RSPEC-S2057
1 recipe
- Add
serialVersionUID
to aSerializable
class when missing - AserialVersionUID
field is strongly recommended in allSerializable
classes. If this is not defined on aSerializable
class, the compiler will generate this value. If a change is later made to the class, the generated value will change and attempts to deserialize the class will fail.
RSPEC-S2060
1 recipe
Externalizable
classes have no-arguments constructor -Externalizable
classes handle both serialization and deserialization and must have a no-args constructor for the deserialization process.
RSPEC-S2094
1 recipe
- Find empty classes - Find empty classes without annotations that do not implement an interface or extend a class.
RSPEC-S2111
3 recipes
- Refaster template
BigDecimalRules.BigDecimalValueOf
- PreferBigDecimal#valueOf(double)
over the associated constructor. BigDecimal
rounding constants toRoundingMode
enums - ConvertBigDecimal
rounding constants to the equivalentRoundingMode
enum.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 aBigDecimal
which is exactly equal to0.1
, but it is equal to0.1000000000000000055511151231257827021181583404541015625
. This is because0.1
cannot be represented exactly as a double (or, for that matter, as a binary fraction of any finite length).
RSPEC-S2116
2 recipes
- 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. hashCode()
should not be called on array instances - ReplacehashCode()
calls on arrays withArrays.hashCode()
because the results fromhashCode()
are not helpful.
RSPEC-S2129
3 recipes
- Refaster template
StringRules.EmptyString
- Avoid unnecessary creation of new emptyString
objects; use the empty string literal instead. - Refaster template
StringRules.StringIdentity
- Avoid unnecessary creation of newString
objects. - Use primitive wrapper
valueOf
method - The constructor of all primitive types has been deprecated in favor of using the static factory methodvalueOf
available for each of the primitive type wrappers.
RSPEC-S2147
1 recipe
- 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.
RSPEC-S2162
1 recipe
- 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
).
RSPEC-S2204
1 recipe
- 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()
.
RSPEC-S2211
1 recipe
- 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.
RSPEC-S2221
1 recipe
- 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 thetry
block that are not already caught by more specificcatch
clauses.
RSPEC-S2245
1 recipe
- Secure random - Use cryptographically secure Pseudo Random Number Generation in the "main" source set. Replaces instantiation of
java.util.Random
withjava.security.SecureRandom
.
RSPEC-S2293
1 recipe
- 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.
RSPEC-S2333
1 recipe
- Static methods need not be final - Static methods do not need to be declared final because they cannot be overridden.
RSPEC-S2446
1 recipe
- 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.
RSPEC-S2589
1 recipe
- Refaster template
AssortedRules.LogicalImplication
- Don't unnecessarily repeat boolean expressions.
RSPEC-S2629
2 recipes
- 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.
RSPEC-S2637
2 recipes
- Refaster template
ReactorRules.FluxThen
- Avoid vacuous invocations ofFlux#ignoreElements()
. - Refaster template
ReactorRules.MonoIdentity
- Don't unnecessarily transform aMono
to an equivalent instance.
RSPEC-S2681
2 recipes
- Control flow statement indentation - Program flow control statements like
if
,while
, andfor
can 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. - Wrapping and braces - Format line wraps and braces in Java code.
RSPEC-S2692
2 recipes
indexOf()
replaceable bycontains()
- Checking if a value is included in aString
orList
usingindexOf(value)>-1
orindexOf(value)>=0
can be replaced withcontains(value)
.indexOf
should not compare greater than zero - ReplacesString#indexOf(String) > 0
andList#indexOf(Object) > 0
with>=1
. CheckingindexOf
against>0
ignores the first element, whereas>-1
is inclusive of the first element. For clarity,>=1
is used, because>0
and>=1
are semantically equal. Using>0
may appear to be a mistake with the intent of including all elements. If the intent is to check whether a value in included in aString
orList
, theString#contains(String)
orList#contains(Object)
methods may be better options altogether.
RSPEC-S2699
1 recipe
- Include an assertion in tests - For tests not having any assertions, wrap the statements with JUnit Jupiter's
Assertions#assertDoesNotThrow(..)
.
RSPEC-S2737
1 recipe
- Catch clause should do more than just rethrow - A
catch
clause that only rethrows the caught exception is unnecessary. Letting the exception bubble up as normal achieves the same result with less code.
RSPEC-S2761
1 recipe
- Refaster template
EqualityRules.DoubleNegation
- Avoid double negations; this is not Javascript.
RSPEC-S2786
1 recipe
- Nested enums are not static - Remove static modifier from nested enum types since they are implicitly static.
RSPEC-S2912
1 recipe
- Use
indexOf(String, int)
- ReplacesindexOf(String)
in binary operations if the compared value is an int and not less than 1.
RSPEC-S2959
1 recipe
- 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.
RSPEC-S2974
1 recipe
- Finalize classes with private constructors - Adds the
final
modifier to classes that expose no public or package-private constructors.
RSPEC-S3008
1 recipe
- 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.
RSPEC-S3020
1 recipe
- '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.
RSPEC-S3052
1 recipe
- Explicit initialization - Checks if any class or object member is explicitly initialized to default for its type value: -
null
for object references - zero for numeric types andchar
- andfalse
forboolean
Removes explicit initializations where they aren't necessary.
RSPEC-S3358
1 recipe
- 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.
RSPEC-S3415
1 recipe
- Assertion arguments should be passed in the correct order - Assertions such as
org.junit.Assert.assertEquals
expect 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.Iterable
arguments swapping them if necessary so that the error messages won't be confusing.
RSPEC-S3416
1 recipe
- Loggers should be named for their enclosing classes - Ensure
LoggerFactory#getLogger(Class)
is called with the enclosing class as argument.
RSPEC-S3423
1 recipe
- Order POM elements - Order POM elements according to the recommended order.
RSPEC-S3457
2 recipes
- Fix
String#format
andString#formatted
expressions - FixString#format
andString#formatted
expressions by replacing\n
newline characters with%n
and removing any unused arguments. Note this recipe is scoped to only transform format expressions which do not specify the argument index. - 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.
RSPEC-S3599
1 recipe
- No double brace initialization - Replace
List
,Map
, andSet
double brace initialization with an initialization block.
RSPEC-S3626
1 recipe
- 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.
RSPEC-S3655
1 recipe
- Refaster template
OptionalRules.OptionalOrElseThrow
- PreferOptional#orElseThrow()
over the less explicitOptional#get()
.
RSPEC-S3658
1 recipe
- Replace
fail()
intry-catch
blocks withAssertions.assertDoesNotThrow(() -> { ... })
- Replacetry-catch
blocks wherecatch
merely contains afail()
forfail(String)
statement withAssertions.assertDoesNotThrow(() -> { ... })
.
RSPEC-S3878
1 recipe
- 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")
.
RSPEC-S3972
1 recipe
- Wrapping and braces - Format line wraps and braces in Java code.
RSPEC-S3973
1 recipe
- Wrapping and braces - Format line wraps and braces in Java code.
RSPEC-S3981
1 recipe
- Use
Collection#isEmpty()
instead of comparingsize()
- Also check for notisEmpty()
when testing for not equal to zero size.
RSPEC-S3986
1 recipe
- 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.
RSPEC-S4034
3 recipes
- Refaster template
DoubleStreamRules.DoubleStreamAnyMatch
- PreferDoubleStream#anyMatch(DoublePredicate)
over more contrived alternatives. - Refaster template
IntStreamRules.IntStreamAnyMatch
- PreferIntStream#anyMatch(IntPredicate)
over more contrived alternatives. - Refaster template
LongStreamRules.LongStreamAnyMatch
- PreferLongStream#anyMatch(LongPredicate)
over more contrived alternatives.
RSPEC-S4087
1 recipe
- Unnecessary close in try-with-resources - Remove unnecessary
AutoCloseable#close()
statements in try-with-resources.
RSPEC-S4266
6 recipes
- 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); } }
.
RSPEC-S4347
1 recipe
- SecureRandom seeds are not constant or predictable - Remove
SecureRandom#setSeed(*)
method invocations having constant or predictable arguments.
RSPEC-S4488
1 recipe
- Remove
@RequestMapping
annotations - Replace method declaration@RequestMapping
annotations with@GetMapping
,@PostMapping
, etc. when possible.
RSPEC-S4524
1 recipe
- Default comes last - Ensure the
default
case comes last after all the cases in a switch statement.
RSPEC-S4551
1 recipe
- 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!=
.
RSPEC-S4635
5 recipes
- 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.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.
RSPEC-S4682
1 recipe
- Remove
@Nullable
and@CheckForNull
annotations from primitives - Primitives can't be null anyway, so these annotations are not useful in this context.
RSPEC-S4738
9 recipes
- Prefer
Files#createTempDirectory()
- Replaces GuavaFiles#createTempDir()
with JavaFiles#createTempDirectory(..)
. Transformations are limited to scopes throwing or catchingjava.io.IOException
. - 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.Optional
instead of usingcom.google.common.base.Optional
. - Prefer
java.util.function.Function
- Preferjava.util.function.Function
instead of usingcom.google.common.base.Function
. - Prefer
java.util.function.Predicate
- Preferjava.util.function.Predicate
instead of usingcom.google.common.base.Predicate
. - Prefer
java.util.function.Supplier
- Preferjava.util.function.Supplier
instead of usingcom.google.common.base.Supplier
. - 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.
RSPEC-S4968
8 recipes
- 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 aMono
to 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
.
RSPEC-S4973
1 recipe
- Use
String.equals()
onString
literals -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.
RSPEC-S5361
1 recipe
- Use
String::replace()
when first parameter is not a real regular expression - WhenString::replaceAll
is used, the first argument should be a real regular expression. If it’s not the case,String::replace
does exactly the same thing asString::replaceAll
without the performance drawback of the regex.
RSPEC-S5411
1 recipe
- Avoid boxed boolean expressions - Under certain conditions the
java.lang.Boolean
type is used as an expression, and it may throw aNullPointerException
if the value is null.
RSPEC-S5443
1 recipe
- Prefer
Files#createTempFile(String, String, FileAttribute[])
over alternatives that create files with more liberal permissions - Note thatFile#createTempFile
treats 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 anIllegalArgumentException
if the prefix contains any file separators.
RSPEC-S5445
1 recipe
- Use
Files#createTempDirectory
- UseFiles#createTempDirectory
when the sequenceFile#createTempFile(..)
->File#delete()
->File#mkdir()
is used for creating a temp directory.
RSPEC-S5786
1 recipe
- Remove
public
visibility of JUnit 5 tests - Removepublic
and optionallyprotected
modifiers from methods with@Test
,@ParameterizedTest
,@RepeatedTest
,@TestFactory
,@BeforeEach
,@AfterEach
,@BeforeAll
, or@AfterAll
. They no longer have to be public visibility to be usable by JUnit 5.
RSPEC-S5790
1 recipe
- JUnit 5 inner test classes should be annotated with
@Nested
- Adds@Nested
to inner classes that contain JUnit 5 tests.
RSPEC-S5838
1 recipe
- Simplify AssertJ chained assertions - Many AssertJ chained assertions have dedicated assertions that function the same. It is best to use the dedicated assertions.
RSPEC-S5993
1 recipe
- Constructors of an
abstract
class should not be declaredpublic
- Constructors ofabstract
classes can only be called in constructors of their subclasses. Therefore the visibility ofpublic
constructors are reduced toprotected
.
RSPEC-S6202
1 recipe
- Replace
A.class.isInstance(a)
witha instanceof A
- There should be noA.class.isInstance(a)
, it should be replaced bya instanceof A
.
RSPEC-S6204
1 recipe
- Replace
Stream.collect(Collectors.toUnmodifiableList())
withStream.toList()
- ReplaceStream.collect(Collectors.toUnmodifiableList())
with Java 16+Stream.toList()
. Also replacesStream.collect(Collectors.toList())
ifconvertToList
is set totrue
.
RSPEC-S6519
1 recipe
- 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.
RSPEC-S6558
1 recipe
it
shouldn't be used as a lambda parameter name -it
is 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.
RSPEC-S7158
2 recipes
- Refaster template
CharSequenceRules.CharSequenceIsEmpty
- PreferCharSequence#isEmpty()
over alternatives that consult the char sequence's length. - Refaster template
StringRules.StringIsEmpty
- PreferString#isEmpty()
over alternatives that consult the string's length.
RSPEC-S818
1 recipe
- Upper case literal suffixes - Using upper case literal suffixes for declaring literals is less ambiguous, e.g.,
1l
versus1L
.
RSPEC-S888
1 recipe
- 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.
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-servlet
tocf-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.
schemas
34 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
- Migrate xmlns entries in
*-jdbc.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JDBC schema files to WebLogic 14.1.2 - Migrate xmlns entries in
*-jdbc.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries in*-jdbc.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
*-jms.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in
*-jms.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries in*-jms.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
application-client.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inapplication-client.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
persistence-configuration.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inpersistence-configuration.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
plan.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in
plan.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inplan.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
resource-deployment-plan.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inresource-deployment-plan.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-application.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic-application.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-application.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-ejb-jar.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ejb-jar.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-pubsub.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic PubSub schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic-pubsub.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-pubsub.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-ra.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ra.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-rdbms-jar.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-rdbms-jar.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-webservices-policy.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-webservices-policy.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-webservices.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-webservices.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-wsee-clientHandlerChain.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-wsee-clientHandlerChain.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-wsee-standaloneclient.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-wsee-standaloneclient.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic.xml
files to WebLogic 15.1.1
sdk
4 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.
- Migrate from the AWS SDK for Java v1 to the AWS SDK for Java v2 including S3 Transfer Manager. - This recipe will apply changes required for migrating from the AWS SDK for Java v1 to the AWS SDK for Java v2, including S3 Transfer Manager. Transforms for Transfer Manager are incomplete and in-progress.
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
ReplaceSecrets
andReplaceSecretKeys
recipes combined used to update the Maven publishing secrets in OpenRewrite's GitHub organization.
security
52 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. - Java security best practices - Applies security best practices to Java code.
- Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.auth.message
packages tojakarta.security.auth.message
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages tojakarta.security.jacc
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.security.jacc
packages 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.
- Relocate
org.apache.commons:commons-io
tocommons-io:commons-io
- The deployment oforg.apache.commons:commons-io
was 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-manager
for message security in Spring security 6 - In Spring Security 6,<websocket-message-broker>
defaultsuse-authorization-manager
totrue
. So, theuse-authorization-manager
attribute for message security is no longer needed and can be removed. - Rename the package name from
com.nimbusds.jose.shaded.json
tonet.minidev.json
- Rename the package name fromcom.nimbusds.jose.shaded.json
tonet.minidev.json
. - Replace
System.getSecurityManager()
withnull
- The Security Manager API is unsupported in Java 24. This recipe will replaceSystem.getSecurityManager()
withnull
to make its behavior more obvious and try to simplify execution paths afterwards. - Replace global method security with method security -
@EnableGlobalMethodSecurity
and<global-method-security>
are deprecated in favor of@EnableMethodSecurity
and<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-java
IBMsemeru
distribution - 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-java
temurin
distribution - 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
11 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 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.properties
files. - 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.properties
files. - 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.properties
files. - 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
76 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-jetty
as a first-order dependency and will add the maven propertyjakarta-servlet.version
setting it's value to5.0.0
. This will downgrade thejakarta-servlet
artifact 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
message
attribute in the default error view was removed rather than blanked when it is not shown.spring-webmvc
orspring-webflux
projects that parse the error response JSON may need to deal with the missing item (release notes). You can still use theserver.error.include-message
property if you want messages to be included. - Finds uses of
Encryptors.queryableText()
-Encryptors.queryableText()
is insecure and is removed in Spring Security 6. - Migrate SAP cloud foundry logging support to Spring Boot 3.x - Migrate SAP cloud foundry logging support from
cf-java-logging-support-servlet
tocf-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 Management Endpoint Security properties to 3.4 - Migrate the settings for Management Endpoint Security from
true
|false
toread-only
|none
. - Migrate Spring Boot properties to 2.0 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.1 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.2 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.3 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.4 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.5 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.6 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 2.7 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.0 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.1 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.2 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.3 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.4 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Boot properties to 3.5 - Migrate properties found in
application.properties
andapplication.yml
. - 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.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2021 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2022 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2023 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2024 - Migrate properties found in
application.properties
andapplication.yml
. - Migrate Spring Cloud properties to 2025 - Migrate properties found in
application.properties
andapplication.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 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 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 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.
- Remove the deprecated properties
additional-keys-to-sanitize
from theconfigprops
andenv
end 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-manager
for message security in Spring security 6 - In Spring Security 6,<websocket-message-broker>
defaultsuse-authorization-manager
totrue
. So, theuse-authorization-manager
attribute for message security is no longer needed and can be removed. - Rename
server.max-http-header-size
toserver.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.json
tonet.minidev.json
- Rename the package name fromcom.nimbusds.jose.shaded.json
tonet.minidev.json
. - Replace global method security with method security -
@EnableGlobalMethodSecurity
and<global-method-security>
are deprecated in favor of@EnableMethodSecurity
and<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.
- 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
applicationTaskExecutor
instead 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@Resource
annotation is used.
springdata
1 recipe
- Upgrade Spring Data BOM to 2024.1.x - Upgrade Spring Data BOM to 2024.1.x version.
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
8 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.
sqlserver
1 recipe
- Add missing Flyway module for SQL Server - Database modules for Flyway 10 have been split out into separate modules for maintainability. Add the
flyway-sqlserver
dependency if you are using SQL Server with Flyway 10, as detailed on https://github.com/flyway/flyway/issues/3780.
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
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
@ApiImplicitParams
to@Parameters
- Converts@ApiImplicitParams
to@Parameters
and the@ApiImplicitParam
annotation to@Parameter
and converts the directly mappable attributes and removes the others. - Migrate from
@ApiModelProperty
to@Schema
- Converts the@ApiModelProperty
annotation to@Schema
and converts the "value" attribute to "description". - Migrate from
@ApiOperation
to@Operation
- Converts the@ApiOperation
annotation to@Operation
and converts the directly mappable attributes and removes the others. - Migrate from
@ApiParam
to@Parameter
- Converts the@ApiParam
annotation to@Parameter
and converts the directly mappable attributes. - Migrate from
@ApiResponses
to@ApiResponses
- Changes the namespace of the@ApiResponses
and@ApiResponse
annotations 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.tld
file with taglib 2.1 tosrc/main/webapp/WEB-INF/tags
. - Add implicit TLD with taglib 3.0 - Add
implicit.tld
file with taglib 3.0 tosrc/main/webapp/WEB-INF/tags
. - Migrate xmlns entries in
*taglib*.xml
files 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.
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
PodSecurityPolicy
controller on Google Kubernetes Engine (GKE) clusters - EnsurePodSecurityPolicy
controller 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
EnforceHTTPS
enabled - Ensure AWS Elasticsearch domains haveEnforceHTTPS
enabled. - 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_type
set - Ensure key vault secrets havecontent_type
set. - 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
2 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-*.xml
files 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.
testing
39 recipes
- Add
org.hamcrest:hamcrest
if 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 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 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.Assertions
toorg.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.Assert
toorg.assertj.core.api.Assertions
. - Migrate
cucumber-java8
tocucumber-java
- Migratescucumber-java8
step definitions andLambdaGlue
hooks tocucumber-java
annotated 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 theAssertions
class 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.
- Use Arquillian JUnit 5 Extension - Migrates Arquillian JUnit 4 to JUnit 5.
- Use JUnit Jupiter
@Disabled
- Migrates JUnit 4.x@Ignore
to JUnit Jupiter@Disabled
. - Use JUnit Jupiter
Executable
- Migrates JUnit 4.xThrowingRunnable
to 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
MockWebServer
to enable JUnit Jupiter Extension support. - Use Vert.x JUnit 5 Extension - Migrates Vert.x
@RunWith
VertxUnitRunner
to the JUnit Jupiter@ExtendWith
VertxExtension
. - 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.Assert
toorg.assertj.core.api.Assertions
.
testwebxml
1 recipe
- Migrate xmlns entries in
test-web.xml
files 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
*.tld
files. - 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.transaction
packages tojakarta.transaction
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.transaction
packages tojakarta.transaction
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
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
2 recipes
- Migrate deprecated
javax.validation
packages tojakarta.validation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation. - Migrate deprecated
javax.validation
packages tojakarta.validation
- Java EE has been rebranded to Jakarta EE, necessitating a package relocation.
validation-mapping
1 recipe
- Migrate xmlns entries in
**/validation/*.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
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_threads
2 recipes
- Find Virtual Thread opportunities - Find opportunities to convert existing code to use Virtual Threads.
- Find non-virtual
ExecutorService
creation - Find all places where staticjava.util.concurrent.Executors
method creates a non-virtualjava.util.concurrent.ExecutorService
. This recipe can be used to search froExecutorService
that 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-api
1 recipe
- 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
web-app
2 recipes
- Migrate xmlns entries in
weblogic.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic.xml
files to WebLogic 15.1.1
web-fragment
1 recipe
- Migrate xmlns entries in
web-fragment.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
weblogic
51 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.tld
file with taglib 2.1 tosrc/main/webapp/WEB-INF/tags
. - Add implicit TLD with taglib 3.0 - Add
implicit.tld
file 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.
- 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.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JDBC schema files to WebLogic 14.1.2 - Migrate xmlns entries in
*-jdbc.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries in*-jdbc.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
*-jms.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic JMS schema files to WebLogic 14.1.2 - Migrate xmlns entries in
*-jms.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries in*-jms.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
application-client.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inapplication-client.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
persistence-configuration.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inpersistence-configuration.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
plan.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Plan schema files to WebLogic 14.1.2 - Migrate xmlns entries in
plan.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inplan.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
resource-deployment-plan.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inresource-deployment-plan.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-application.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic Application schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic-application.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-application.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-ejb-jar.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ejb-jar.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-pubsub.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic PubSub schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic-pubsub.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-pubsub.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-ra.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-ra.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-rdbms-jar.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-rdbms-jar.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-webservices-policy.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-webservices-policy.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-webservices.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-webservices.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-wsee-clientHandlerChain.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-wsee-clientHandlerChain.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic-wsee-standaloneclient.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-wsee-standaloneclient.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
weblogic.xml
files to WebLogic 14.1.2 - Migrate xmlns entries in WebLogic schema files to WebLogic 14.1.2 - Migrate xmlns entries in
weblogic.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic.xml
files 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.
webservices
3 recipes
- Migrate xmlns entries in
weblogic-webservices.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-webservices.xml
files to WebLogic 15.1.1 - Migrate xmlns entries in
webservices.xml
files. - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
webservices-policy
2 recipes
- Migrate xmlns entries in
weblogic-webservices-policy.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-webservices-policy.xml
files to WebLogic 15.1.1
webxml
1 recipe
- Migrate xmlns entries in
web.xml
files for Jakarta Server Faces 3 - Java EE has been rebranded to Jakarta EE, necessitating an XML namespace relocation.
wsee-clientHandlerChain
2 recipes
- Migrate xmlns entries in
weblogic-wsee-clientHandlerChain.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-wsee-clientHandlerChain.xml
files to WebLogic 15.1.1
wsee-standaloneclient
2 recipes
- Migrate xmlns entries in
weblogic-wsee-standaloneclient.xml
files 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.xml
files to WebLogic 15.1.1 - This recipe will update thexmlns
entries inweblogic-wsee-standaloneclient.xml
files 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
*.xjb
files. - 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.