📄️ Common Static Analysis Issue Remediation
In this guide we'll look at using OpenRewrite to perform an automated remediation for many issues identified by common static analysis tools.
📄️ Automatically fix Checkstyle violations
Most programmers agree that having consistent formatting across a code base makes it easier to work with. Tools like Checkstyle provide automated enforcement of these policies. But it's never fun to have your workflow interrupted by complaints about formatting. This guide will show you how to configure OpenRewrite to automate the remediation of Checkstyle policy violations.
📄️ Migrate to Java 17
Automatically migrate from Java 8 to 17
📄️ Migrate to JUnit 5 from JUnit 4
In this tutorial, we'll use OpenRewrite to perform an automated migration from the venerable JUnit 4 testing framework to its successor JUnit 5. JUnit is a popular tool that many other libraries and frameworks interact with. OpenRewrite supports some of the popular integrations, such as Mockito and Spring-Boot, out of the box.
📄️ Migrate to Spring Boot 3 from Spring Boot 2
Automatically migrate from Spring Boot 2.x to Spring Boot 3.x
📄️ Migrate to Spring Boot 2 from Spring Boot 1
In this guide we'll look at using OpenRewrite to perform an automated migration from SpringBoot 1 to SpringBoot 2.
📄️ Migrate to Quarkus 2 from Quarkus 1
In this guide we'll look at using OpenRewrite to perform an automated migration from Quarkus 1.x to Quarkus 2.x.
📄️ Migrate to Micronaut 4 from Micronaut 3
In this guide, we'll look at using OpenRewrite to perform an automated migration from Micronaut 3.x to Micronaut 4.x
📄️ Migrate to Micronaut 3 from Micronaut 2
In this guide we'll look at using OpenRewrite to perform an automated migration from Micronaut 2.x to Micronaut 3.x
📄️ Migrate to SLF4J from Log4j
In this guide, we'll use OpenRewrite to perform an automated migration from Apache Log4j (handling both log4j 1.x or log4j 2.x) to the Simple Logging Facade for Java (SLF4J).
📄️ Use SLF4J Parameterized Logging
In this guide we'll look at using OpenRewrite to automatically refactor logging statements to take advantage of performance improvements offered by using slf4j parameterized logging over String concatenation.
📄️ Refactoring with declarative YAML recipes
Not every refactoring operation requires a brand new imperative Recipe to be authored in code. With declarative YAML recipes, many powerful transformations can be achieved without writing any code. In this tutorial we'll use declarative YAML recipes to rename a package location and update downstream projects to reflect the updated package names.
📄️ Automating Maven dependency management
Dependency management is a complex and often frustrating part of software development. Sometimes a transitive dependency you'd never expect makes it onto your runtime classpath. Sometimes your build tool resolves a conflict between requested dependency versions in an unexpected way. Despite the headaches, it wouldn't make sense for most projects to forgo dependencies.
📄️ Migrate to AssertJ from Hamcrest
In this tutorial, we'll use OpenRewrite to perform an automated migration from Hamcrest to AssertJ. While Hamcrest still functions, it hasn't been updated since 2019 and there's a growing number of issues and pull requests open on the project. On the other hand, AssertJ has much more activity and is generally favored for testing assertions.
📄️ Migrate to AssertJ from JUnit Asserts
In this tutorial, we'll use OpenRewrite to perform an automated migration from JUnit Asserts to AssertJ. AssertJ is a Java library that provides a rich set of assertions and truly helpful error messages, improves test code readability, and is designed to be super easy to use within your favorite IDE.
📄️ Migrating to Jakarta EE 10.0
In this tutorial, we'll use OpenRewrite to perform an automated migration to Jakarta EE 10. Jakarta EE 10 is packed with new features for building modernized, simplified, and lightweight cloud native Java applications. This new innovative community-driven release is designed for organizations looking to start developing new enterprise Java applications or advancing their existing ones.