Java migration · Fleet example

# Repair a Java 17   migration.

OpenRewrite had updated Restlight. A returned four-file patch got its Java 17 build passing all 729 original tests.

[See the result ](#result) Ask about your project 
Copy a link and question into the Claude Code or Codex session you already use.

The work

## Finish the migration.  Keep the tests.

Moving a project to a new Java version reaches into its build tools, dependencies and source code. An automated migration can update the files and still leave a build that needs repair.

We gave a fleet a collection of prepared Java migrations. This example follows Restlight, an open-source web framework. The fleet returned changes to two Maven files and two Java files. All original test files stayed unchanged.

Restlight · Java 17

## Build passing.

Original tests passed
729

Failures or skips
0

Test files changed
0

What came back

## A focused change  to an existing project.

The patch updates build plugins and ASM, fixes Javadoc markup, and changes how one diagnostic string is constructed. Some plugin changes address versions missing from the supplied offline cache.

This is the kind of work your coding agent can bring back into your project: review the proposed changes, apply them on a branch, and run your own checks.

## How we checked it.

We replayed the exact returned patch from clean source with the original toolchain and dependency cache. The Java 17 build completed with all 729 original tests passing, and all 219 test files matched their original hashes.

Experiment details

The run used 32 agents with a four-hour allowance across multiple repositories. This page covers one selected repository, prepared with OpenRewrite in a custom FreshBrew-derived workload. GLM-5.3 powered the agents.

The original Java 8 build passed. On Java 17, the original source stopped at Javadoc; the prepared migration stopped at a missing cached plugin. The returned patch completed the build. It also added a newline to one error message, which the original tests did not catch.

This is Multiplet’s replay, with no upstream acceptance or measured comparison against a coding agent.
[Result summary ](/evidence/java-migration/result.json) 
Project: [ESA Restlight](https://github.com/esastack/esa-restlight) 

## Have a migration  in progress?

[Run your first fleet ](/first-fleet/) [How it works ](/how-it-works/)
