Sample Codemod

This page holds an example Codemodder codemod, built with Gradle, as discussed in the codemodder.io tutorial.

The newer methods in java.nio.file.Files replaced the need for some of community-loved APIs in org.apache.commons.io.FileUtils. and this project demonstrates creating a codemod to move org.apache.commons.io.FileUtils#readLines() to java.nio.file.Files.readAllLines(). The codemod should make changes like this:

- import org.apache.commons.io.FileUtils; // remove the import if possible
+ import java.nio.file.Files;

...

- List<String> lines = FilesUtils.readLines(file);
+ List<String> lines = Files.readAllLines(file.toPath());

Testing

$ ./gradlew check

Building

$ ./gradlew distZip

Running

After building, you can run the distribution packaged in the distZip task.

$ cd app/build/distributions/
$ unzip app.zip
 
# do it without making the actual code changes on disk
$ app/bin/app --dry-run /my-project

# do it and make the actual code changes
$ app/bin/app /my-project