Krishna - well done!! Our GSOC students keep going!
Removing 16k lines of code is excellent refactoring. The early compile time error seems like a huge gain for developer productivity. Thank you for all of your hard work on this and compliments to your mentors who did a fantastic job too. - James Ps I hope we can get GitHub to reinstate your account. Sent from Gmail Mobile On Wed, Nov 4, 2026 at 8:36 PM KRISHNA MEWARA <[email protected]> wrote: > Hi everyone, > > I have some really happy news to share. With #6797 [1] merged on November > 3, the Feign migration is complete and our codebase is now free of REST > Assured! > > This started as my GSoC project and it ended up taking a lot longer than > one summer, so it feels great to finally write this mail. > > *What changed* > > - All of our integration tests now talk to the server through the > generated Feign client. > - REST Assured is gone from integration-tests, oauth2-tests and > twofactor-tests, and the Retrofit SDK is off the test classpath too. > - The final PR alone touched 206 files and removed about 16,000 lines. > > *Why it's better* > > - We catch mistakes much earlier. If an API field changes, the build now > breaks at compile time, so you find out right away instead of later in a 1 > to 2 hour CI run. > - Tests are simpler to write. You call typed methods now, so there's no > more copying JSON around and hoping the fields are still right. > - Our Swagger spec stays honest. The tests use the generated client, so > when a field is missing from the spec, we notice it and fix it at the > source. > - Tests can run faster too. When I benchmarked the same 10 tests before > and after, they went from about 13.4 seconds to 7.9 seconds, around 41% > faster, and HTTP calls dropped from 76 to 56. That's because they no longer > log in and hit a health check before every test. It's a small benchmark and > I haven't measured the full suite, but it's a nice sign. > > *Writing new tests* > > If you're adding a new integration test, please start with the Feign > Integration Tests chapter [2]. It covers how to lay out a test class, call > the API, assert failures, and fix a generated model at the source. It also > lists the conventions that kept coming up in reviews. > > *The new build check* > > We now have a Checkstyle rule called FeignNoRestAssured that rejects any > io.restassured import. It runs as part of checkstyleTest on every pull > request, and a violation fails the build. With the dependency gone, that > import won't compile anyway. So if you have an open PR that still uses REST > Assured, you'll need to move it to Feign when you rebase. You can run the > check locally with: > > ./gradlew :integration-tests:checkstyleTest :oauth2-tests:checkstyleTest > :twofactor-tests:checkstyleTest > > *The journey* > > If you're curious about how we got here, have a look at FINERACT-2609 [3]. > I kept updating it all through the migration. The last stretch is in > FINERACT-2967 [4]. > > *Thank you* > > A huge thank you to Adam Saghy, Attila Budai and Aman Mittal for helping > me see this through. Adam, you reviewed so much of this work and carried > the final PR over the line. Attila, you've been a great mentor from day > one. Aman, thank you for your review and approval on the final PR. I > learned a lot from all of you, and I'm continuing to learn more as I work. > > *One small note* > > My GitHub account (@DeathGun44) is temporarily suspended and I'm working > on getting it back. That's why my PRs and comments aren't visible right > now, and why Adam opened #6797 with my commits. My commits on develop are > all safe. In the meantime, I've moved my profile to GitLab, and I've listed > my contributions there with a link to each commit: > > Profile: https://gitlab.com/DeathGun44 > Contributions: > https://gitlab.com/DeathGun44/DeathGun44/-/blob/main/CONTRIBUTIONS.md > > Thanks everyone! > > Krishna Mewara > *Apache Fineract* > > [1] https://github.com/apache/fineract/pull/6797 > [2] > https://github.com/apache/fineract/blob/develop/fineract-doc/src/docs/en/chapters/testing/integration-feign.adoc > [3] https://issues.apache.org/jira/browse/FINERACT-2609 > [4] https://issues.apache.org/jira/browse/FINERACT-2967 >
