Skip to main content

Find Deprecated Methods and Classes

To identify all uses of deprecated methods, classes, and other deprecated elements in your codebase, you can use the OpenRewrite recipe org.openrewrite.java.search.FindDeprecatedUses from rewrite-java.

This recipe searches your codebase for any usage of APIs marked with the @Deprecated annotation, helping you understand where technical debt exists and what needs to be updated before upgrading dependencies or migrating to newer framework versions. The recipe generates a data table showing all deprecated usages found.

You can run the search recipe using one of the following methods.

The Moderne CLI allows you to run OpenRewrite recipes on your project without needing to modify your build files, against serialized Lossless Semantic Tree (LST) of your project for a considerable performance boost & across projects.

You will need to have configured the Moderne CLI on your machine before you can run the following command.

  1. If project serialized Lossless Semantic Tree is not yet available locally, then build the LST. This is only needed the first time, or after extensive changes:
shell
mod build ~/workspace/
  1. If the recipe is not available locally yet, then you can install it once using:
shell
mod config recipes jar install org.openrewrite:rewrite-java:LATEST
  1. Run the recipe.
shell
mod run ~/workspace/ --recipe org.openrewrite.java.search.FindDeprecatedUses

Analyze the Results

After running the recipe, you will find a data table for MethodCalls in the target/rewrite/datatables/ directory for Maven, or build for Gradle build, or in the output directory specified for the Moderne CLI. You will also see deprecated usages reported in both the console output, as in the source code.